2016-11-17 22 views
1

在SQL服務器,獲取表中的行數明顯的一種方式是是否有可能從O(1)時間的表中獲取行數?

SELECT COUNT(*) FROM MyTable 

,但我認爲這是O(n)時間,其中n是行數。有沒有我可以訪問的具有存儲行數的元數據?

+1

我敢肯定有堆棧溢出的答案,但是這顯示瞭如何:HTTP:// www.i-programmer.info/programming/database/6576-sql-server-quickly-get-row-counts-for-tables-heaps-indexes-and-partitions.html。 –

回答

3

是的,你可以使用sys.partitions,它可能不是確切的數字,但它的速度極快:

SELECT SUM(rows) 
FROM sys.partitions 
WHERE [object_id] = OBJECT_ID('dbo.MyTable') 
AND index_id IN (0,1); 
相關問題