select top 1 col1
from table1
order by CreatedOn desc
此查询需要6分钟才能执行SQL Server 2005。
该表包含大约25,00,000行,总列数为36,但如上所示,我只是检索数据类型为uniqueidentifier
的单个列。
所以,请帮助我进行优化,如果需要更多详细信息,请告诉我。
好吧,让我告诉你,我无法更改我的表结构或不能对表等进行任何更改,如索引等。建议仅对查询进行更改或更改不会对表结构产生影响。
答案 0 :(得分:4)
你是否测试过它:
SELECT col1
FROM table1
WHERE CreatedOn in (SELECT MAX(CreatedOn) AS col1 FROM table1)
答案 1 :(得分:2)
你可以尝试的是向Prequel(各处的SQL代码的神和创造者)祈祷,授予你神奇的访问权限和索引能力,不仅可以在一个结构合理的表中组合聚簇索引,也可以将非聚簇索引合并......
答案 2 :(得分:1)
在CreatedOn
答案 3 :(得分:1)
您是否为此表创建了索引。索引增加以在处理查询时快速查找数据。
答案 4 :(得分:1)
为CreatedOn
创建索引。延迟的来源是由CreatedOn订购所需的时间,在其上创建索引将解决您的问题
答案 5 :(得分:1)
在CreatedOn
上创建非聚集索引并包含col1
:
CREATE NONCLUSTERED INDEX NC_Table1_CreatedOn_I_col1
ON Table1(CreatedOn)
INCLUDE (col1)
如果您无法创建索引,那么您无法加快查询速度!你可以做一个不同的查询,但这不是你的问题......
答案 6 :(得分:1)
答案 7 :(得分:1)
select min(CreatedOn) from table1
如果你很幸运,SQL会在统计数据中得到这个,答案很快。
如果你运气不好,那么按照上面建议编制索引是你唯一的希望。