non-clustered index to count the rows. If the table does not have any
non-clustered index, it will have to scan the table.
If you just want a quick number, you can do
SELECT rowcnt
FROM sysindexes
WHERE object_name(id) = 'tablename'
AND indid IN (9,1)
This number may not be fully accurate, but close enough.
--
Erland Sommarskog, SQL Server MVP, esquel [at] sommarskog.se
-- SELECT rowcnt
FROM sysindexes
WHERE object_name(id) = 'tablename'
AND indid IN (9,1)
This number may not be fully accurate, but close enough.
--
Erland Sommarskog, SQL Server MVP, esquel [at] sommarskog.se
1 августа 2011 г. 13:08 пользователь Akzhan Abdulin <akzhan.abdulin@gmail.com> написал:
MS SQL, насколько я помню, при этом догадается просканировать индекс (index scan).Некоторые версионники тоже умеют,SQL> alter table counting add constraint counting_pk 2 primary key (object_id); Table altered. SQL> analyze table counting compute statistics; Table analyzed. SQL> analyze index counting_pk compute statistics; Index analyzed. SQL> set autotrace on; SQL> select count(*) from counting; COUNT(*) ---------- 41725 Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=10 Card=1) 1 0 SORT (AGGREGATE) 2 1 INDEX (FAST FULL SCAN) OF 'COUNTING_PK' (UNIQUE)1 августа 2011 г. 9:33 пользователь Max Lapshin <max.lapshin@gmail.com> написал:2011/8/1 Akzhan Abdulin <akzhan.abdulin@gmail.com>:
> Ну это как раз неверно. Большинство СУБД для получения COUNT(*) используютТы хочешь сказать, что MSSQL при COUNT(*) догадается выбрать
> первичный или уникальный индексы, вернее, их статистики (однократное
> обращение к статистике).
> http://wiki.postgresql.org/wiki/Slow_Counting
>
статистику по первичному ключу?
--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru
Комментариев нет:
Отправить комментарий