Как быстро вычислить число строк таблицы в MSSQL?
От: lesovick Россия  
Дата: 23.04.13 08:37
Оценка:
Как можно побыстрее вычислить число строк таблицы в MSSQL? Если применять запрос SELECT COUNT(*) FROM Table1, то, я так понимаю, просматривается вся таблица от начала до конца. Взял таблицу с 45 миллионами записей, и запрос вычислялся несколько минут. А, если зайти в свойства таблицы, то "глазами" размер можно узнать за пять секунд. Должна же быть возможность обратиться к свойствам таблицы также быстро? В MySQL я такую возможность видел.
Re: Как быстро вычислить число строк таблицы в MSSQL?
От: BrainSlug Израиль  
Дата: 23.04.13 08:48
Оценка: 3 (1)
SELECT
  SUM(rows) AS [SQL RowCount]
FROM sys.partitions
WHERE
  index_id IN (0, 1) 
  AND object_id = OBJECT_ID('NameOfTable')
GROUP BY
  object_id

отсюда http://www.kodyaz.com/articles/sql-rowcount-using-sql-server-system-view-sys-partitions.aspx
.
Re: Как быстро вычислить число строк таблицы в MSSQL?
От: Sshur Россия http://shurygin-sergey.livejournal.com
Дата: 23.04.13 08:49
Оценка: 3 (1)
Здравствуйте, lesovick, Вы писали:

L>Как можно побыстрее вычислить число строк таблицы в MSSQL? Если применять запрос SELECT COUNT(*) FROM Table1, то, я так понимаю, просматривается вся таблица от начала до конца. Взял таблицу с 45 миллионами записей, и запрос вычислялся несколько минут. А, если зайти в свойства таблицы, то "глазами" размер можно узнать за пять секунд. Должна же быть возможность обратиться к свойствам таблицы также быстро? В MySQL я такую возможность видел.


Вот нашлось в гугле
http://maximus-sql-notes.blogspot.ru/2012/05/blog-post.html

надо только понимать, что такое количество строк будет приблизительным

И, кстати, можно еще самому профайлером посмотреть, что зовется при открытии окна свойств таблицы в Management Studio
Шурыгин Сергей

"Не следует преумножать сущности сверх необходимости" (с) Оккам
Re: Как быстро вычислить число строк таблицы в MSSQL?
От: avpavlov  
Дата: 23.04.13 09:17
Оценка: +1
Здравствуйте, lesovick, Вы писали:

L>Как можно побыстрее вычислить число строк таблицы в MSSQL? Если применять запрос SELECT COUNT(*) FROM Table1, то, я так понимаю, просматривается вся таблица от начала до конца. Взял таблицу с 45 миллионами записей, и запрос вычислялся несколько минут. А, если зайти в свойства таблицы, то "глазами" размер можно узнать за пять секунд. Должна же быть возможность обратиться к свойствам таблицы также быстро? В MySQL я такую возможность видел.


Интересно, не пытается ли он shared блокировки наложить? Что будет, если так?

SELECT COUNT(*) FROM Table1 with(nolock)
Re[2]: Как быстро вычислить число строк таблицы в MSSQL?
От: lesovick Россия  
Дата: 03.06.13 14:36
Оценка:
Здравствуйте, avpavlov, Вы писали:

Нет так работает с той же скоростью. А за остальные посты спасибо: помогло!)

A>Здравствуйте, lesovick, Вы писали:


L>>Как можно побыстрее вычислить число строк таблицы в MSSQL? Если применять запрос SELECT COUNT(*) FROM Table1, то, я так понимаю, просматривается вся таблица от начала до конца. Взял таблицу с 45 миллионами записей, и запрос вычислялся несколько минут. А, если зайти в свойства таблицы, то "глазами" размер можно узнать за пять секунд. Должна же быть возможность обратиться к свойствам таблицы также быстро? В MySQL я такую возможность видел.


A>Интересно, не пытается ли он shared блокировки наложить? Что будет, если так?


A> SELECT COUNT(*) FROM Table1 with(nolock)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.