Hello, Nikolay!
Nikolay Ponomarenko wrote:
Да, эта проблема известна, ее обсуждали еще по приведенной ссылке.
Интересен уже сам доступ к данным, есть ли разница, к примеру при
доступе по PK для 100 тысячной таблицы и для миллиардной?
:-) там же по ссылке примеры запросов приведены.
Причем, один буржуй даже некоторым образом наехал на результаты,
мол, у вас там все закэшировано в дупель и т.п.
Я даже несколько обозлился, проверил еще раз, каждый запрос
сразу после коннекта, дисконнект, и т.п.
И еще сразу после загрузки компа. Все соответствует.
Я бы мог выполнить почти любой запрос с этой базой,
какой попросишь, только сначала надо обратно этот sata-диск
подключить :-)
понятно, что пример не чистый и влиять может куча факторов. Просто
интересно, есть ли смысл продолжать что-то тестить, или действительно,
есть какие-то доп. накладаные расходы при работе(пусть просто при
чтении) со свехбольшими таблицами?
В моем случае основополагающим был ввод-вывод. я при запуске
любых запросов постоянно смотрел на диски в perfmon.
Ну и, разумеется, в большинстве реальных запросов замедление есть
пропорционально как объемам, так и степени "размазанности" таблицы
по базе при одинаковых объемах.
Например, в общей таблице (в статье), где указано время select count
и время создания индексов видно, что хоть ORDERS и меньше по объему
чем NEW_ORDER (25 гиг против 32 гига), но из-за размазанности и
утроенного кол-ва записей (111 миллионов против 372 миллионов)
ORDERS по count и созданию индексов в 1.5 раз медленнее.
Если бы таблицы были мельче, то разница в 1.5 раз была бы менее
заметна. А так - 20 минут и 30 минут, это же 10 минут разницы.
--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34