SQL Server 2005 查询优化

Posted

技术标签:

【中文标题】SQL Server 2005 查询优化【英文标题】:SQL Server 2005 query optimization 【发布时间】:2012-11-05 07:12:13 【问题描述】:

我的应用程序需要从 SQL Server 数据库中获取数据。我的问题是必须将 3 个表连接到一个视图中。这需要很长时间(生成视图大约需要 30 秒)所以我想知道是否有办法优化这个 SQL 查询?

SQL查询:

SELECT TOP (100) PERCENT Request1.RequestID,
                         TrackIT.dbo.Sending.Barcode,
                         TrackIT.dbo.Address_View.AdrID,
                         TrackIT.dbo.Address_View.Name,
                         TrackIT.dbo.Address_View.Street,
                         TrackIT.dbo.Address_View.HouseNo,
                         TrackIT.dbo.Address_View.Postal,
                         TrackIT.dbo.Address_View.City,
                         TrackIT.dbo.Address_View.Country,
                         Request1.Latitude,
                         Request1.Longitude,
                         Request1.ReceivedDate
FROM   (SELECT DISTINCT RequestID,
                        Ltrim([Content]) AS Barcode,
                        Latitude,
                        Longitude,
                        ReceivedDate
        FROM   RequestWithLocation
        WHERE  ( Site LIKE '%Z' )
               AND ( [Content] <> '' )
               AND ( AddressID = '0' )
               AND ReceivedDate > Dateadd(day, -7, Getdate())) AS Request1
       INNER JOIN TrackIT.dbo.Sending
         ON Request1.Barcode = TrackIT.dbo.Sending.Barcode
       INNER JOIN TrackIT.dbo.Address_View
         ON TrackIT.dbo.Sending.DeliveryAdrID = TrackIT.dbo.Address_View.AdrID
ORDER  BY AdrID 

谁能帮忙?

【问题讨论】:

好吧 - 这种情况:(Site LIKE '%Z') 肯定会杀死你所有的表现 - 因为它是 LIKE 和领先的 % - 永远不会有索引可以使用..... 有什么方法可以在不使用 LIKE "%Z" 的情况下从 Site 列中获取所有数据? 你能放弃那一个条件,看看性能是否提高了吗? 在运行 6 次后,3 次在查询中带有 LIKE,3 次没有。 LIKE 的 3 次需要 17 秒,没有它需要 20 到 22 秒。当我在 MS SQL 中使用 Estimate Execution Plan 函数时,两个查询得到相同的结果 执行计划非常庞大,我无法将其合并到一张图片中。这些表没有被索引。 【参考方案1】:

您应该在表的连接字段上添加索引。

【讨论】:

【参考方案2】:

您好,请尝试索引视图

供参考:http://technet.microsoft.com/en-US/library/cc917715.aspx

【讨论】:

以上是关于SQL Server 2005 查询优化的主要内容,如果未能解决你的问题,请参考以下文章

工作 SQL Server 2005 查询优化

SQL server2005上千万条数据分页查询怎么做优化?

SQL Server查询优化中的两个选项

SQL Server 2005 - 内部联接的顺序

实战演练SQL SERVER——SQL语句优化建议

sql server2005主从数据库同步配置