在sqlserver2008 management studio中執行下列**:
set statistics time on
goselect *
from information.lhbinfo
where tradingdate between '2010-01-01' and '2011-06-10';
godeclare @startdate datetime,@expirationdate datetime
select @startdate='2010-01-01',@expirationdate='2011-06-10';
select *
from information.lhbinfo
where tradingdate between @startdate and @expirationdate;
goset statistics time off
go結果如下:
(3696 行受影響)
(3696 行受影響)
思考:看來用變數的值代入生成動態sql語句執行速度要稍快些
SQL查詢的where條件優化之一
對於mssql中,查詢是非常普遍的事情。對於where後面的條件。系統預設是從左右依次執行的。所以介於此,我們需要把能夠大範圍過濾掉資料的條件優先排在前面。同理逐級遞減。舉個簡單的例子。有個表 students 資料有100000條 select id,name,age from students ...
基於索引的SQL語句優化之一
避免對列的操作 任何對列的操作都可能導致全表掃瞄,這裡所謂的操作包括資料庫函式 計算表示式等等,查詢時要盡可能將操作移至等式的右邊,甚至去掉函式。例1 下列sql條件語句中的列都建有恰當的索引,但30萬行資料情況下執行速度卻非常慢 select from record where substrb c...
tinyxml優化之一
最近在搞xml解析優化,公司引擎用了tinyxml1和tinyxml2兩個xml庫,後者的效率比前者高60 吧,tinyxml1解析大檔案是很慢的,可以淘汰了,tinyxml2還勉強,快的話還得算pugixml或者rapidxml吧。奈何一些引擎 根深蒂固,無法更換為pugixml,只能區域性修改一...