Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有百万行的排序表,LinQ连接_C#_Sql_Sql Server_Linq - Fatal编程技术网

C# 具有百万行的排序表,LinQ连接

C# 具有百万行的排序表,LinQ连接,c#,sql,sql-server,linq,C#,Sql,Sql Server,Linq,我遇到了一个问题,不知道如何在SQL server 2012中解决它 我有+5000000行记录ID的表,链接, 但当我查询选择N行时,显示错误请求超时 代码: 当前正在获取完整的HotelImage对象。也许它们也含有斑点?您应该通过仅选择Url_Image来缩小从数据库获取的数据范围,因为这是您使用的唯一属性: var _img = _DB.HotelImages.Where(o => o.ID_Hotel == Hotel_DA.ID_Hotel) .Se

我遇到了一个问题,不知道如何在SQL server 2012中解决它

我有+5000000行记录ID的表,链接, 但当我查询选择N行时,显示错误请求超时

代码:


当前正在获取完整的HotelImage对象。也许它们也含有斑点?您应该通过仅选择Url_Image来缩小从数据库获取的数据范围,因为这是您使用的唯一属性:

var _img = _DB.HotelImages.Where(o => o.ID_Hotel == Hotel_DA.ID_Hotel)
              .Select(x => x.Url_Image);
然后

_imghtml = _imghtml + "<a href=''><img src='" + item + "' alt=''></a>";

当前正在获取完整的HotelImage对象。也许它们也含有斑点?您应该通过仅选择Url_Image来缩小从数据库获取的数据范围,因为这是您使用的唯一属性:

var _img = _DB.HotelImages.Where(o => o.ID_Hotel == Hotel_DA.ID_Hotel)
              .Select(x => x.Url_Image);
然后

_imghtml = _imghtml + "<a href=''><img src='" + item + "' alt=''></a>";

覆盖索引与仅获取已建议的所需列相结合,将带来最佳性能改进:

索引:

CREATE INDEX IX_ID_Hotel ON YourTable(ID_Hotel)
INCLUDE (Url_Image)
您还应该确保上下文已被释放。我建议你使用一个字符串生成器,而不是连接字符串

string html;
var builder = new StringBuilder();
using (LinQDataContext _DB = new LinQDataContext())
{

    var urls = _DB.HotelImages.Where(o => o.ID_Hotel == Hotel_DA.ID_Hotel)
               .Select(x => x.Url_Image);

    foreach (var url in urls)
    {
        builder.Append("<a href=''><img src='")
               .Append(url)
               .Append("'")
               .Append("alt=''></a>");
    }
}
html = builder.ToString();

覆盖索引与仅获取已建议的所需列相结合,将带来最佳性能改进:

索引:

CREATE INDEX IX_ID_Hotel ON YourTable(ID_Hotel)
INCLUDE (Url_Image)
您还应该确保上下文已被释放。我建议你使用一个字符串生成器,而不是连接字符串

string html;
var builder = new StringBuilder();
using (LinQDataContext _DB = new LinQDataContext())
{

    var urls = _DB.HotelImages.Where(o => o.ID_Hotel == Hotel_DA.ID_Hotel)
               .Select(x => x.Url_Image);

    foreach (var url in urls)
    {
        builder.Append("<a href=''><img src='")
               .Append(url)
               .Append("'")
               .Append("alt=''></a>");
    }
}
html = builder.ToString();

您调用以选择N行的代码的何处?表是否已编制索引?您希望此查询返回多少条记录?另外,web请求是否超时,还是Sql Server请求?当我选择return random record、web和Sql Server时,您调用代码来选择N行的位置在哪里?表是否已编制索引?您希望此查询返回多少条记录?另外,web请求是否超时,还是Sql Server请求?当我选择return random record时,web和Sql Server