簡體   English   中英

更快的行數SQL Server 2008 sys.dm_db_partition_stats with Where clase

[英]Faster row count SQL Server 2008 sys.dm_db_partition_stats with Where clase

SELECT SUM(row_count)
FROM   sys.dm_db_partition_stats
WHERE  object_id = OBJECT_ID('TableName')

人們說上面的查詢比select count (*)更快。

我想知道使用sys.dm_db_partition_stats select count(*) from table where name = 'awt'的等價物。

謝謝。

sys.dm_db_partition_stats的文檔:

返回當前數據庫中每個分區的頁面和行計數信息。

這是SQL Server維護的聚合信息,以便能夠管理用於保存用戶數據的結構。 該動態管理視圖中沒有關於分區中值分布的信息。 在其他地方,它可以優化查詢,保留統計數據,但這又是聚合數據(並不是為每次數據更改而維護)。

如果您只想計算滿足某些特定條件的行,那么您將不得不計算它們。 (您考慮過添加索引嗎?)

考慮到以下情況,這絕對是可用的更快方法之一。

  1. 收集統計信息將花費大量時間在較大的表上

  2. 如果您想要始終准確計數,則需要更新統計信息。

  3. 如果您的要求是知道計數(估計和近似數字),這是最好的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM