|
|
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
привет, хотел бы уточнить, что во многих серверах при выполнении запроса select count(*) from table обновляется статистика по всем индексам в этой таблице. так это или нет? особо интересуют mysql, postgres, firebird, db2, derby, h2, a также mssql и oracle. пишу серверо-независимый софт и не хочется запускать спец-команду для каждого сервера; а некоторые периодически начинают выдумывать дурацкие планы запросов. спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 11:21 |
|
||
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
никто не парится и ты не парься ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 11:27 |
|
||
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
firebird - нет, статистика по индексам в firebird и interbase обновляется только по set statistics <index_name>. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 11:27 |
|
||
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
feddхотел бы уточнить, что во многих серверах при выполнении запроса select count(*) from table обновляется статистика по всем индексам в этой таблице. так это или нет? Я сильно сомневаюсь, что при чтении таблицы (или минимального покрывающего индекса) кто-то будет читать ещё и все остальные индексы. Разве что читается действительно таблица, а не индекс, и собирается статистика только по значениям полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 11:38 |
|
||
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
kdvfirebird - нет, статистика по индексам в firebird и interbase обновляется только по set statistics <index_name>.спасибо! all: если несложно, для других серверов, если они уже у вас в памяти или недолго искать, можно тоже написать команды обновления статистики (лучше не всей базы, а потаблично/поиндексно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 11:40 |
|
||
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
в оракел точно не так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 11:41 |
|
||
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
с фигали загуляли? ИМХО, бред в приложении к любой нормальной СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 11:54 |
|
||
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
В Oracle статистика собирается с пом. пакета dbms_stats (и по таблицам, и по индексам) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 11:55 |
|
||
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
Ихтиандрс фигали загуляли? ИМХО, бред в приложении к любой нормальной СУБД.я уже понял, и собираю команды для обновления статистики ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 11:59 |
|
||
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
в постгресе ANALYZE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 12:10 |
|
||
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
feddя уже понял, и собираю команды для обновления статистики Как правило, обновлять статистику на сервере - это задача DBA, а не приложения. А DBA это запускает каким-нибудь джобом, только в редких случаях ручками... Кроме того, критичность сбора статистики на различных серверах м.б. различной. Например, Oracle считает, что если в таблице изменилось меньше 10% данных, то статистика вполне пригодна. Тут ведь дело еще упирается в призводительность, сбор статистики жрет ресурсы сервера. Так что, насчет серверо-независимости подобной вещи - сомнительно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 12:11 |
|
||
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
В MS SQL обновляется при помощи оператора UPDATE STATISTICS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 12:24 |
|
||
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
Локшин МаркВ MS SQL обновляется при помощи оператора UPDATE STATISTICS.Если чтоит параметр AUTO_UPDATE_STATISTICS, то обновляется при выполнении запроса в том случае, если сервер сочтёт её устаревшей (синхронно или асинхронно) http://msdn.microsoft.com/ru-ru/library/ms190397.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 14:02 |
|
||
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
tru55В Oracle статистика собирается с пом. пакета dbms_stats (и по таблицам, и по индексам)Тут вроде написано, что в Оракле тоже автоматически собирается по умолчанию. http://download.oracle.com/docs/cd/E11882_01/server.112/e10595/tables005.htm#i1006473 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 14:11 |
|
||
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
Le Peacetru55В Oracle статистика собирается с пом. пакета dbms_stats (и по таблицам, и по индексам)Тут вроде написано, что в Оракле тоже автоматически собирается по умолчанию. Просто при создании базы через DBCA (т.е. через визард), начиная с Ora 10, автоматом создается job, который отвечает за сбор статистики по всей БД (раньше этот job приходилось создавать ручками). Однако это все относительно: - база может создаваться ручками - DBA может из тех или иных соображений отключить этот job, и/или сделать свой (например, некоторые места в OeBS плохо работают при собранной статистике) - job работает, как правило, ночью (в момент наименьшей загрузки БД). Если мы днем произведем какую-нибудь массовую заливку, то надо будет запустить сбор статистики вручную (по всей или части БД), иначе она до след. ночи будет неактуальна И т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 14:19 |
|
||
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
tru55, то есть одним махом собирается статистика по всей бд? То есть если статистику нужно обновлять чаще либо нет времени наименьшей нагрузки, то автоматический сбор уже не получится сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 14:23 |
|
||
|
опрос: обновление статистики путем count(*) в разных серверах
|
|||
|---|---|---|---|
|
#18+
Le Peace то есть одним махом собирается статистика по всей бд? То есть если статистику нужно обновлять чаще либо нет времени наименьшей нагрузки, то автоматический сбор уже не получится сделать? Угу, умалчиваемый job такой, т.е. статистика по всей БД. Другое дело, что за время работы БД отслеживаются изменения и статистика собирается только по тем таблицам, где с последнего сбора изменилось больше 10% данных (до Ora 10 такой мониторинг включался вручную). Но если мы хотим по разным частям БД собирать статистику в разное время, значит мы уже должны написать запуск нескольких job в разное время (хотя написание тут не сильно большое, ибо пакет для сбора статистики все равно 1 - dbms_stats) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 14:30 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=36562865&tid=1552817]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 382ms |

| 0 / 0 |
