日期:2014-05-17  浏览次数:20456 次

sql 语句优化
SELECT TOP 1 t.a FROM (select top(@_n) t1.a from Table1 as t1)
由变量取其中某一条数据     如果数据特别大   效率很低   请问有什么办法可以优化
------解决方案--------------------
那你不如加个自增ID,然后直接where id=几这样来查
------解决方案--------------------
这样可能会快一些,先把top n放进内存,内存比HDD查询速度要快很多

select top(@_n) a INTO #TABLE1 from Table1

SELECT TOP 1 a FROM #TABLE1

------解决方案--------------------
为你这个语句又没有分页的意思,又没有其他用意,什么不直接Table1中取TOP 1 ,非要嵌套一层?

你可以用ROW_NUMBER()生成序号,然后按照你的需要去对应的序号
;with cte 
as
(
select *,rn=row_number()over(order by getdate()) from table1
)
select * from  cte where rn=1