2012年7月2日 星期一

提昇 MsSQL 取得某資料表總筆數效能

今天在逛  MSDN Library  找資料時,意外發現若資料表有設索引的話,

MsSQL會記錄該資料表的資料筆數於 sys.partitions
先前若要取得某資料表的總資料筆數時,使用的指令不外乎

SELECT COUN(*) FROm table

這樣的語句來取得資料表總筆數,現在可以改用下列的語句,效能提速非常的明顯。


// ISNULL(MAX([table].[rows]) ,0)  語句是預防資料表內尚無資料或未建任何的索引
SELECT ISNULL(MAX([table].[rows]) ,0) FROm (
SELECT TOP 1 [rows]
FROm sys.partitions
WHERE object_id = object_id('[資料表名稱]')
) AS [table]

沒有留言: