|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Dmitry Kuzmenko 2:5020/400 15 Feb 2001 16:16:09 To : All Subject : Re: Проблема с большими таблицами -------------------------------------------------------------------------------- gaa8907s1v3@4ax.com> <3A8AA108.51F14A53@demo.ru> <96fjjl$nnt$1@service.katren.ru> <3A8BBDB7.6C64BB6C@demo.ru> <96gf8b$bsv$1@service.katren.ru> From: Dmitry Kuzmenko <dima@demo.ru> Hello, Tolik! Tolik Tentser wrote: > select count(*) as [записей в таблице] from movement > > (1 row(s) affected) > > StmtText > ---------------------------------------------------------------------------- > ------------ > |--Stream Aggregate(DEFINE:([Expr1002]=Count(*))) > |--Index > Scan(OBJECT:([Katren].[dbo].[Movement].[IN_Movement_GroupIdContentId])) > > Как видишь - нашел наиболее подходящий индекс (минимального объема) - и > просканировал. просканировал что - определил count из количества страниц и количества ключей? Или даже пересчитал кол-во ключей в индексе? К сожалению, IB не может сделать так же, потому что ключи хранятся упакованные, и более того, у ключей нет идентификаторов транзакций, по которым можно определить видимость версий. Т.е. если IB будет считать кол-во записей по кол-ву ключей в маленьком индексе, то он просто вернет общее количество версий, которое никого не интересует. Конечно, идея правильная - вместо здоровенных записей отсканировать маленький индекс. Hо увы, для IB этот способ никак не подходит. > > Так что твоя сентенция о "сказках про блокировки" здесь абсолютно не в > кассу. > > В кассу, в кассу. > Ибо запрос выполнялся "честно" вижу что честно, и я даже знаю, что отсканировать таблицу в натуральном виде в MS SQL будет быстрее, чем в IB. Потому как никаких версий нет. Собственно, тот способ, которым IB считает count, нельзя назвать плохим - в силу его архитектуры другого способа не существует. А архитектура сервера при проектировании задачи должна учитываться. Разве не так? -- Dmitry Kuzmenko, Epsylon Technologies. TechSupport Manager. InterBase support. Welcome to http://ib.demo.ru/ (1251) (095) 530-28-06. Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Epsylon Technologies (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/2108718da809.html, оценка из 5, голосов 10
|