Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / опрос: обновление статистики путем count(*) в разных серверах / 17 сообщений из 17, страница 1 из 1
06.04.2010, 11:21
    #36562774
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
привет,

хотел бы уточнить, что во многих серверах при выполнении запроса select count(*) from table обновляется статистика по всем индексам в этой таблице. так это или нет?

особо интересуют mysql, postgres, firebird, db2, derby, h2, a также mssql и oracle.

пишу серверо-независимый софт и не хочется запускать спец-команду для каждого сервера; а некоторые периодически начинают выдумывать дурацкие планы запросов.

спасибо
...
Рейтинг: 0 / 0
06.04.2010, 11:27
    #36562803
MsDatabaseru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
никто не парится и ты не парься
...
Рейтинг: 0 / 0
06.04.2010, 11:27
    #36562804
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
firebird - нет, статистика по индексам в firebird и interbase обновляется только по set statistics <index_name>.
...
Рейтинг: 0 / 0
06.04.2010, 11:38
    #36562858
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
feddхотел бы уточнить, что во многих серверах при выполнении запроса select count(*) from table обновляется статистика по всем индексам в этой таблице. так это или нет? Я сильно сомневаюсь, что при чтении таблицы (или минимального покрывающего индекса) кто-то будет читать ещё и все остальные индексы.
Разве что читается действительно таблица, а не индекс, и собирается статистика только по значениям полей.
...
Рейтинг: 0 / 0
06.04.2010, 11:40
    #36562865
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
kdvfirebird - нет, статистика по индексам в firebird и interbase обновляется только по set statistics <index_name>.спасибо!

all: если несложно, для других серверов, если они уже у вас в памяти или недолго искать, можно тоже написать команды обновления статистики (лучше не всей базы, а потаблично/поиндексно)
...
Рейтинг: 0 / 0
06.04.2010, 11:41
    #36562873
правильный емайл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
в оракел точно не так
...
Рейтинг: 0 / 0
06.04.2010, 11:54
    #36562920
Ихтиандр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
с фигали загуляли?
ИМХО, бред в приложении к любой нормальной СУБД.
...
Рейтинг: 0 / 0
06.04.2010, 11:55
    #36562922
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
В Oracle статистика собирается с пом. пакета dbms_stats (и по таблицам, и по индексам)
...
Рейтинг: 0 / 0
06.04.2010, 11:59
    #36562938
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
Ихтиандрс фигали загуляли?
ИМХО, бред в приложении к любой нормальной СУБД.я уже понял, и собираю команды для обновления статистики
...
Рейтинг: 0 / 0
06.04.2010, 12:10
    #36562968
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
в постгресе ANALYZE
...
Рейтинг: 0 / 0
06.04.2010, 12:11
    #36562976
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
feddя уже понял, и собираю команды для обновления статистики

Как правило, обновлять статистику на сервере - это задача DBA, а не приложения.
А DBA это запускает каким-нибудь джобом, только в редких случаях ручками...
Кроме того, критичность сбора статистики на различных серверах м.б. различной. Например, Oracle считает, что если в таблице изменилось меньше 10% данных, то статистика вполне пригодна. Тут ведь дело еще упирается в призводительность, сбор статистики жрет ресурсы сервера. Так что, насчет серверо-независимости подобной вещи - сомнительно...
...
Рейтинг: 0 / 0
06.04.2010, 12:24
    #36563013
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
В MS SQL обновляется при помощи оператора UPDATE STATISTICS.
...
Рейтинг: 0 / 0
06.04.2010, 14:02
    #36563334
Le Peace
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
Локшин МаркВ MS SQL обновляется при помощи оператора UPDATE STATISTICS.Если чтоит параметр AUTO_UPDATE_STATISTICS, то обновляется при выполнении запроса в том случае, если сервер сочтёт её устаревшей (синхронно или асинхронно)
http://msdn.microsoft.com/ru-ru/library/ms190397.aspx
...
Рейтинг: 0 / 0
06.04.2010, 14:11
    #36563370
Le Peace
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
tru55В Oracle статистика собирается с пом. пакета dbms_stats (и по таблицам, и по индексам)Тут вроде написано, что в Оракле тоже автоматически собирается по умолчанию.
http://download.oracle.com/docs/cd/E11882_01/server.112/e10595/tables005.htm#i1006473
...
Рейтинг: 0 / 0
06.04.2010, 14:19
    #36563405
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
Le Peacetru55В Oracle статистика собирается с пом. пакета dbms_stats (и по таблицам, и по индексам)Тут вроде написано, что в Оракле тоже автоматически собирается по умолчанию.

Просто при создании базы через DBCA (т.е. через визард), начиная с Ora 10, автоматом создается job, который отвечает за сбор статистики по всей БД (раньше этот job приходилось создавать ручками).
Однако это все относительно:
- база может создаваться ручками
- DBA может из тех или иных соображений отключить этот job, и/или сделать свой (например, некоторые места в OeBS плохо работают при собранной статистике)
- job работает, как правило, ночью (в момент наименьшей загрузки БД). Если мы днем произведем какую-нибудь массовую заливку, то надо будет запустить сбор статистики вручную (по всей или части БД), иначе она до след. ночи будет неактуальна
И т.д.
...
Рейтинг: 0 / 0
06.04.2010, 14:23
    #36563418
Le Peace
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
tru55,

то есть одним махом собирается статистика по всей бд?
То есть если статистику нужно обновлять чаще либо нет времени наименьшей нагрузки, то автоматический сбор уже не получится сделать?
...
Рейтинг: 0 / 0
06.04.2010, 14:30
    #36563452
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опрос: обновление статистики путем count(*) в разных серверах
Le Peace
то есть одним махом собирается статистика по всей бд?
То есть если статистику нужно обновлять чаще либо нет времени наименьшей нагрузки, то автоматический сбор уже не получится сделать?

Угу, умалчиваемый job такой, т.е. статистика по всей БД. Другое дело, что за время работы БД отслеживаются изменения и статистика собирается только по тем таблицам, где с последнего сбора изменилось больше 10% данных (до Ora 10 такой мониторинг включался вручную).
Но если мы хотим по разным частям БД собирать статистику в разное время, значит мы уже должны написать запуск нескольких job в разное время (хотя написание тут не сильно большое, ибо пакет для сбора статистики все равно 1 - dbms_stats)
...
Рейтинг: 0 / 0
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / опрос: обновление статистики путем count(*) в разных серверах / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]