1
在SQL服務器,獲取表中的行數明顯的一種方式是是否有可能從O(1)時間的表中獲取行數?
SELECT COUNT(*) FROM MyTable
,但我認爲這是O(n)
時間,其中n
是行數。有沒有我可以訪問的具有存儲行數的元數據?
在SQL服務器,獲取表中的行數明顯的一種方式是是否有可能從O(1)時間的表中獲取行數?
SELECT COUNT(*) FROM MyTable
,但我認爲這是O(n)
時間,其中n
是行數。有沒有我可以訪問的具有存儲行數的元數據?
是的,你可以使用sys.partitions
,它可能不是確切的數字,但它的速度極快:
SELECT SUM(rows)
FROM sys.partitions
WHERE [object_id] = OBJECT_ID('dbo.MyTable')
AND index_id IN (0,1);
我敢肯定有堆棧溢出的答案,但是這顯示瞭如何:HTTP:// www.i-programmer.info/programming/database/6576-sql-server-quickly-get-row-counts-for-tables-heaps-indexes-and-partitions.html。 –