Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Разрастание индексов
|
|||
|---|---|---|---|
|
#18+
MS SQL 7.0.Есть таблица в которую круглосуточно происходит добавление и удаление записей (анализатор офисной АТС). Постоянное количество записей 1000000-1500000.Есть один кластерный и один некластерный индекс. Проблема- после нескольких месяцев работы размеры каждого из индексов в полтора-два раза превышают размер данных (при удалении записей размер индекса практически не уменьшается).Как с этим бороться без принудительной переиндексации таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2001, 10:06 |
|
||
|
Разрастание индексов
|
|||
|---|---|---|---|
|
#18+
Судя по всему, Вас смущает размер некластерного индекса, поскольку кластерный индекс содержит сами данные. Может быть, удастся сделать кластерный индекс покрывающим и те поля, которые используются в не кластерном индексе. С другой стороны, постоянное добавление и удаление записей неизбежно приведёт к сильной фрагментации страниц таблицы. Бороться с этим можно только переиндексацией. Я надеюсь, что у Вашей АТС есть такое время суток, когда акивность звонков не велика и можно запланировать переиндексацию на это время. Ещё один вариант, это натравить на Вашу таблицу ITW, и посмотреть, что он порекомендует под реальной нагрузкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2001, 10:27 |
|
||
|
Разрастание индексов
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, да именно некластерных индексов. А вот простоев у АТС практически не бывает, круглосуточная работа, поэтому переиндексация является крайне нежелательным действием (хотя именно так сейчас и приходится поступать). А интересно, в 2000 SQL эта проблема как-нибудь решена? Хотя, насколько я помню, Microsoft обещал решить эту проблему в версии следующей после MS SQL Server 6.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2001, 11:29 |
|
||
|
Разрастание индексов
|
|||
|---|---|---|---|
|
#18+
Тяжелый случай. Я на твоем месте сделал бы так: 1. Сделал бы копию БД 2. Настроил бы Merge-репликацию между БД-оригиналом и БД-копией. 2. В копии пересоздал бы заново индекс, задав высокое значение FillFactor (процентов 95). 3. Запустил бы репликацию, чтобы синхронизировать содержимое БД, которое могло расползтись, пока выполнялись операции с индексом. 4. Подсунул бы БД-копию вместо оригинала, предварительно уничтожив настройки репликации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2001, 12:04 |
|
||
|
Разрастание индексов
|
|||
|---|---|---|---|
|
#18+
А разве DBCC DBREINDEX не реает эту задачу? Garya: Этот метод предполагает отключение пользователей хотя-бы на небольшое время... Лучьше уж пересоздать индексы на рабочей базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2001, 12:27 |
|
||
|
Разрастание индексов
|
|||
|---|---|---|---|
|
#18+
Одни мои знакомые, занимающиеся биллингом, решили эту проблему созданием новой таблицы на каждый день. Не красиво - но даёт результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2001, 13:03 |
|
||
|
Разрастание индексов
|
|||
|---|---|---|---|
|
#18+
Можно еще держать 2 таблицы: в первую заносяться оперативные данные и она может не содержать индексов, а во вторую таблицу данные периодически переносятся из первой, причем после переноса они там(в 1-ой таблице) стираются, это можно делать в одной транзакции. На время переиндексации данные какое-то время будут просто копиться в первой таблице. А может и черт с ним - пусть себе растет индекс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2001, 13:49 |
|
||
|
Разрастание индексов
|
|||
|---|---|---|---|
|
#18+
RE: SergSuper Мне показалось, что Sergey именно переиндекспции (для борьбы с фрагментацией) и не хотел. Если я правильно понял, данные удаляются за прошедшие периобы, т.е. хранится только определённый интервал времени (допустим неделю). Тогда, можно завести 7 таблиц, по дням недели, которые будут дропаться в нужное время - и никакой переиндексации.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2001, 13:58 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32004721&tid=1826933]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
12ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 401ms |

| 0 / 0 |
