Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Дефрагментация индексов  [new]
RomanYeliseyev
Member

Откуда:
Сообщений: 137
Glory
RomanYeliseyev
Скриптом поделитесь, если есть таковой?

Скриптом чего ?


Скопом все это сделать, не руками ж все это делать...
3 окт 11, 17:26    [11376230]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
Glory
Member

Откуда:
Сообщений: 104751
RomanYeliseyev
Скопом все это сделать, не руками ж все это делать...

Ну так вы уже как то выбрали индексы "с количеством страниц от 2 до 40"
3 окт 11, 17:29    [11376262]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
RomanYeliseyev
Member

Откуда:
Сообщений: 137
Glory
RomanYeliseyev
Скопом все это сделать, не руками ж все это делать...

Ну так вы уже как то выбрали индексы "с количеством страниц от 2 до 40"


DECLARE @db_id smallint;

SET @db_id = DB_ID(N'dbsql_work');

SELECT * FROM sys.dm_db_index_physical_stats
    (@db_id, NULL, NULL, NULL , NULL)
	where avg_fragmentation_in_percent>=30 and index_type_desc='NONCLUSTERED INDEX' and page_count>8;

go
3 окт 11, 17:48    [11376459]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
Glory
Member

Откуда:
Сообщений: 104751
И что мешает сделать курсор по этому запросу, как в предложенном выше вами же скрипте ?
3 окт 11, 17:50    [11376469]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
RomanYeliseyev
Member

Откуда:
Сообщений: 137
И так, провели переиндексацию базы средствами 1С 8.2.
Количество фрагментированных индексов уменьшилось почти вдвое. Время выполнения этого регламента получается одинаковым с переиндексацией средствами SQL, при этом скорость работы 1С в целом существенно отличается в лучшую строну. Будем переделывать регламенты базы.
4 окт 11, 11:59    [11379837]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
RomanYeliseyev,

Вам действительно больше заняться нечем, кроме как уменьшать степень фрагментации таблиц объемом менее 64Кб? ;)
4 окт 11, 13:31    [11380735]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
RomanYeliseyev
Member

Откуда:
Сообщений: 137
DeColo®es,

этот вопрос я для себя уже закрыл. Мне нужно получить прирост производительности базы.
4 окт 11, 14:19    [11381256]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
ABC_1982
Member

Откуда: Москва
Сообщений: 418
RomanYeliseyev,

Есть предположение, что Вы закрыли для себя вопрос, сделав совершенно неверные выводы.
4 окт 11, 15:34    [11382071]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
Glory
Member

Откуда:
Сообщений: 104751
RomanYeliseyev
И так, провели переиндексацию базы средствами 1С 8.2.
Количество фрагментированных индексов уменьшилось почти вдвое.

И что же конкретно сделала эта "переиндексация базы средствами 1С" ?
4 окт 11, 15:37    [11382099]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
soljo_ua
Member

Откуда: Киев
Сообщений: 369
RomanYeliseyev
DeColo®es,

Мне нужно получить прирост производительности базы.

а с чего вы взяли что только реиндексация повысит производительность Вашей базы? Вы для начала узнайте узкое место - из-за чего тормозит!
4 окт 11, 15:40    [11382120]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
RomanYeliseyev
Member

Откуда:
Сообщений: 137
Glory
RomanYeliseyev
И так, провели переиндексацию базы средствами 1С 8.2.
Количество фрагментированных индексов уменьшилось почти вдвое.

И что же конкретно сделала эта "переиндексация базы средствами 1С" ?


Запустили "реиндексация таблиц + реорганизация таблиц" средствами 1С. Количество фрагментированных кластерных и некластерных индексов уменьшилось почти вдвое. Сейчас прогоняем повторно, чтобы определить время выполнения, т.к. до этого запускали на ночь. Время выполнения тяжелого отчета уменьшилось почти на треть.
4 окт 11, 15:43    [11382151]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
Glory
Member

Откуда:
Сообщений: 104751
RomanYeliseyev
Запустили "реиндексация таблиц + реорганизация таблиц" средствами 1С

Что на сервере то произошло с таблицами и индексами ?
4 окт 11, 15:45    [11382172]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
komrad
Member

Откуда:
Сообщений: 5760
Glory
RomanYeliseyev
Запустили "реиндексация таблиц + реорганизация таблиц" средствами 1С

Что на сервере то произошло с таблицами и индексами ?

полагаю, что были пересозданы
4 окт 11, 15:48    [11382203]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
RomanYeliseyev
Glory
пропущено...
И что же конкретно сделала эта "переиндексация базы средствами 1С" ?

Запустили "реиндексация таблиц + реорганизация таблиц" средствами 1С. Количество фрагментированных кластерных и некластерных индексов уменьшилось почти вдвое. Сейчас прогоняем повторно, чтобы определить время выполнения, т.к. до этого запускали на ночь. Время выполнения тяжелого отчета уменьшилось почти на треть.
"У меня машина стала медленно ехать.
Проблему решили тем, что поменяли на новую, а поскольку уверенности в том, что это поможет не было, на всякий случай сделали первые три ТО подряд."

Только для баз 1С
На самом деле, нужно просто регулярно (например раз в ночь) делать перестроение индексов.
А еще перед этим - выкинуть из планов обслуживания сжатие файлов баз и логов.



Для "нормальных" баз
На самом деле, нужно просто регулярно (например раз в ночь) делать пересчет статистики и периодически (например, раз в неделю) - перестроение индексов.
Если базы большие - то пересчитывать только сильно фрагментированные и очень большие индексы.
А еще перед этим - выкинуть из планов обслуживания сжатие файлов баз и логов.
4 окт 11, 16:23    [11382709]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
RomanYeliseyev
Member

Откуда:
Сообщений: 137
DeColo®es,

Каждый день делаю:
Backup
1) обновление статистики
2) FREEPROCCACHE
3) Дефрагментация индексов

Раз в неделю (вместо указанного выше):
Backup
1) Reindex
2) Обновление статистики

Сжатие файлов баз и логов не провожу, т.к. все равно вырастут все, правда при таком раскладе неудобно разворачивать на тестовом серваке для программистов 1С копии боевых баз, т.к. там дисковая система ограничена (пока что)...
4 окт 11, 17:51    [11383675]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
ABC_1982
Member

Откуда: Москва
Сообщений: 418
RomanYeliseyev
Запустили "реиндексация таблиц + реорганизация таблиц" средствами 1С. Количество фрагментированных кластерных и некластерных индексов уменьшилось почти вдвое.


Вы уверены, что время выполнения данного отчета изменилось вследствие реиндексации средствами 1С?

Если да, то определите, какие именно нужные индексы не были дефрагментированы при помощи SQL Server и почему. Исправьте ситуацию переделкой скрипта. Просто обслуживание средствами SQL Server намного гибче (и как следствие быстрее), чем обслуживание средствами 1С.

Что же касается того, почему у вас осталось много дефрагментированных индексов и их количество уменьшилось после обслуживания средствами 1С. Это долго объяснять, прочитайте для начала хотя бы эту статью:
http://www.simple-talk.com/sql/database-administration/defragmenting-indexes-in-sql-server-2005-and-2008/

Вопросов должно остаться поменьше, да и направление для копания будет определено.
4 окт 11, 18:42    [11384138]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
RomanYeliseyev
Member

Откуда:
Сообщений: 137
ABC_1982,

Уверен, время выполнения отчета "до" 4:50, "после" регламента средствами 1С - 3:30 мин.
Время выполнения регламента средствами 1с и средствами sql одинаковое. Но средствами 1С нельзя исключить переиндексацию индексов, которые не фрагментированы, например, есть таблица (самая большая таблица в базе), в которой index space 135Гб (а вся база 290Гб) и кластерный индекс вообще не фрагментирован.
4 окт 11, 21:43    [11384865]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
RomanYeliseyev
Member

Откуда:
Сообщений: 137
Проверил все индексы этой таблицы. Всего их 125 (1 кластерный), только у 10ти фрагментация больше 0, максимум 6%. У всех остальных 0%.
4 окт 11, 23:24    [11385232]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
ABC_1982
Member

Откуда: Москва
Сообщений: 418
RomanYeliseyev
Проверил все индексы этой таблицы. Всего их 125 (1 кластерный), только у 10ти фрагментация больше 0, максимум 6%. У всех остальных 0%.

А сколько было до перестройки индексов Вы не сохранили?

Время выполнения регламента как засекали?

RomanYeliseyev
Уверен, время выполнения отчета "до" 4:50, "после" регламента средствами 1С - 3:30 мин.

Это может быть связано с обновлением статистики, например. Но сейчас уже бессмыслено гадать.

P.S. 125 индексов для одной таблицы 1С, которая занимает 50% от общего пространства? Это что за таблица, если не секрет?
5 окт 11, 09:59    [11385902]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
RomanYeliseyev
Member

Откуда:
Сообщений: 137
ABC_1982
RomanYeliseyev
Проверил все индексы этой таблицы. Всего их 125 (1 кластерный), только у 10ти фрагментация больше 0, максимум 6%. У всех остальных 0%.

А сколько было до перестройки индексов Вы не сохранили?

Время выполнения регламента как засекали?

RomanYeliseyev
Уверен, время выполнения отчета "до" 4:50, "после" регламента средствами 1С - 3:30 мин.

Это может быть связано с обновлением статистики, например. Но сейчас уже бессмыслено гадать.


Конкретно для этой таблицы я не сохранял количество фраг-х индексов, сохранял для всей БД:

Кластерные индексы, фрагментация >=30%: До - 767, после - 503
Некластерные инд., фрагментация >=30%: До - 1707, после - 1040
Некластерные инд., фрагментация >=30%, page_count>=8: До - 706, после - 377

Читал кое-где, что народ делает обновление статистики в течение рабочего дня несколько раз, но у меня это не покатит, т.к. процесс занимает 40-60 минут.

ABC_1982
P.S. 125 индексов для одной таблицы 1С, которая занимает 50% от общего пространства? Это что за таблица, если не секрет?


Вот эта табличка:
SELECT * FROM sys.dm_db_index_physical_stats
    (DB_ID(N'dbsql_Work'), OBJECT_ID(N'dbsql_Work.dbo._AccTtl418995NG'), NULL, NULL , 'DETAILED')
where avg_fragmentation_in_percent>=0;
GO
5 окт 11, 10:23    [11386070]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
RomanYeliseyev
Читал кое-где, что народ делает обновление статистики в течение рабочего дня несколько раз, но у меня это не покатит, т.к. процесс занимает 40-60 минут.
Его не обязательно делать с FullScan. Если возникает проблема с тем, что нужно часто перестраивать статистику, то она в том, что в статистику не попадают значения из конца диапазона индекса.
Соответственно и перестраивать нужно только статистики по столбцам, новые значения в которых относительно быстро и монотонно возрастают - ID-шки, дата/время и т.д.
5 окт 11, 16:31    [11389695]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
RomanYeliseyev
Member

Откуда:
Сообщений: 137
RomanYeliseyev

Каждый день делаю:
Backup
1) обновление статистики
2) FREEPROCCACHE
3) Дефрагментация индексов

Раз в неделю (вместо указанного выше):
Backup
1) Reindex
2) Обновление статистики


Подскажите, а порядок верный указан мной для регламентов?
6 окт 11, 10:11    [11392821]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
RomanYeliseyev,

Ну, при обновлении статистики и перестроении индексов FREEPROCCACHE можно и не делать.
Во-первых, после перестроения статистики все планы уже и так устареют.
Ну а работа с индексами скорее всего и так вытеснит все планы из памяти.
6 окт 11, 13:10    [11394184]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
RomanYeliseyev
Member

Откуда:
Сообщений: 137
Господа!
Скажите, пожалуйста, что будет, если Raid, на котором лежит tempdb, умрет?
10 окт 11, 11:43    [11411364]     Ответить | Цитировать Сообщить модератору
 Re: Дефрагментация индексов  [new]
Glory
Member

Откуда:
Сообщений: 104751
RomanYeliseyev
Скажите, пожалуйста, что будет, если Raid, на котором лежит tempdb, умрет?

Сервер штатно не запустится
10 окт 11, 11:51    [11411456]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить