Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Анализ времени на вставку записей в таблицу.  [new]
abe
Member

Откуда:
Сообщений: 8
Добрый день. Стоит задача увеличить скорость вставки записей в таблицу. В жертву можно принести некоторые поля таблицы, некоторые индексы. Перед тем как ставить эксперементы, хотелось бы проанализировать время которое тратится на обновление самой таблицы, индексов. Как можно провести такой анализ? СУБД MS SQL 2008 Standart. Спасибо.
17 дек 12, 23:16    [13646187]     Ответить | Цитировать Сообщить модератору
 Re: Анализ времени на вставку записей в таблицу.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31778
abe
Перед тем как ставить эксперементы, хотелось бы проанализировать время которое тратится на обновление самой таблицы, индексов. Как можно провести такой анализ? СУБД MS SQL 2008 Standart. Спасибо.
Посмотреть профайлером затраты на выполнение запроса и его план выполнения. Там в плане делается раскладка по операциям, будет видно время на обновление таблицы и каждого индекса.
17 дек 12, 23:59    [13646284]     Ответить | Цитировать Сообщить модератору
 Re: Анализ времени на вставку записей в таблицу.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37138
http://msmvps.com/blogs/gladchenko/archive/2010/03/09/1761298.aspx
18 дек 12, 00:42    [13646401]     Ответить | Цитировать Сообщить модератору
 Re: Анализ времени на вставку записей в таблицу.  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
alexeyvg
abe
Перед тем как ставить эксперементы, хотелось бы проанализировать время которое тратится на обновление самой таблицы, индексов. Как можно провести такой анализ? СУБД MS SQL 2008 Standart. Спасибо.
Посмотреть профайлером затраты на выполнение запроса и его план выполнения. Там в плане делается раскладка по операциям, будет видно время на обновление таблицы и каждого индекса.
Время к сожалению там видно не будет. Там можно посмотреть только псевдо-стоимость.
18 дек 12, 00:44    [13646402]     Ответить | Цитировать Сообщить модератору
 Re: Анализ времени на вставку записей в таблицу.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31778
Mind
alexeyvg
пропущено...
Посмотреть профайлером затраты на выполнение запроса и его план выполнения. Там в плане делается раскладка по операциям, будет видно время на обновление таблицы и каждого индекса.
Время к сожалению там видно не будет. Там можно посмотреть только псевдо-стоимость.
Да, это я неточно выразился, псевдостоимость.
Ещё там есть другая полезная инфа, например: количество строк, полученных операцией, состав (ширина) этих строк, количество выполнений этой операции.
18 дек 12, 08:47    [13646764]     Ответить | Цитировать Сообщить модератору
 Re: Анализ времени на вставку записей в таблицу.  [new]
abe
Member

Откуда:
Сообщений: 8
Спасибо всем, буду пробовать. Как то не подумал что в планах запросов на вставку информация будет расписана.
18 дек 12, 11:53    [13647731]     Ответить | Цитировать Сообщить модератору
 Re: Анализ времени на вставку записей в таблицу.  [new]
aleks2
Guest
abe
Добрый день. Стоит задача увеличить скорость вставки записей в таблицу. В жертву можно принести некоторые поля таблицы, некоторые индексы. Перед тем как ставить эксперементы, хотелось бы проанализировать время которое тратится на обновление самой таблицы, индексов. Как можно провести такой анализ? СУБД MS SQL 2008 Standart. Спасибо.


1. Не тратьте время. Любые возможные жертвы должно принести.
2. Вставка идет быстро, только СТРОГО в хвост и гриву индексов.
3. Вставка в любое другое место индекса одинаково медленна.
4. Таблица - суть кластерный индекс.
5. Время, затрачиваемое на перестроение индекса (вставку), можно оценить как пропорциональное ширине этого индекса.

ЗЫ. Я всегда призывал и призываю брать пример с производителя ПО в операциях, требующих максимизации быстродействия. Ибо кому как не им...
Посмотрите как ForeFront TMG пишет журнал на MS SQL.
18 дек 12, 12:49    [13648084]     Ответить | Цитировать Сообщить модератору
 Re: Анализ времени на вставку записей в таблицу.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
aleks2
2. Вставка идет быстро, только СТРОГО в хвост и гриву индексов.

Грива индекса — это что? Первая листовая страница?
18 дек 12, 13:15    [13648276]     Ответить | Цитировать Сообщить модератору
 Re: Анализ времени на вставку записей в таблицу.  [new]
aleks2
Guest
Гость333
aleks2
2. Вставка идет быстро, только СТРОГО в хвост и гриву индексов.

Грива индекса — это что? Первая листовая страница?

Первая строка. Вставлять надо ПЕРЕД ней.
Или после последней записи.
18 дек 12, 13:17    [13648287]     Ответить | Цитировать Сообщить модератору
 Re: Анализ времени на вставку записей в таблицу.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
aleks2
Гость333
пропущено...

Грива индекса — это что? Первая листовая страница?

Первая строка. Вставлять надо ПЕРЕД ней.

Проверил на предмет page splits (вы ведь их имели в виду?). Действительно, всё хорошо.

Но фрагментация индекса при этом получилась over 99%. А это как-то не очень хорошо... так что лучше уж в конец индекса (если смотреть шире, чем просто скорость insert) :-)
18 дек 12, 14:10    [13648711]     Ответить | Цитировать Сообщить модератору
 Re: Анализ времени на вставку записей в таблицу.  [new]
abe
Member

Откуда:
Сообщений: 8
alexeyvg
Там в плане делается раскладка по операциям, будет видно время на обновление таблицы и каждого индекса.

Посмотрел планы там, только одна операция - вставка в кластерный индекс. Про остальные индексы информации нет.
18 дек 12, 15:18    [13649218]     Ответить | Цитировать Сообщить модератору
 Re: Анализ времени на вставку записей в таблицу.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31778
abe
alexeyvg
Там в плане делается раскладка по операциям, будет видно время на обновление таблицы и каждого индекса.

Посмотрел планы там, только одна операция - вставка в кластерный индекс. Про остальные индексы информации нет.
Да, что то я напутал... Все индексы учитывает вместе...
18 дек 12, 15:35    [13649335]     Ответить | Цитировать Сообщить модератору
 Re: Анализ времени на вставку записей в таблицу.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
alexeyvg
Да, что то я напутал... Все индексы учитывает вместе...

Бывает, что и раздельно.

К сообщению приложен файл. Размер - 43Kb
18 дек 12, 15:46    [13649433]     Ответить | Цитировать Сообщить модератору
 Re: Анализ времени на вставку записей в таблицу.  [new]
abe
Member

Откуда:
Сообщений: 8
Гость333, а как достичь такого эффекта?
18 дек 12, 16:06    [13649554]     Ответить | Цитировать Сообщить модератору
 Re: Анализ времени на вставку записей в таблицу.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
abe
Гость333, а как достичь такого эффекта?

Не знаю, видимо, такая картинка появляется при вставке большого числа записей. На тестовой таблице у меня вышло, что при вставке 250 записей (и менее) показывается только clustered index insert, а при вставке 251 записи (и более) — уже с раскладкой по всем индексам (сервер 2008R2).
18 дек 12, 16:18    [13649625]     Ответить | Цитировать Сообщить модератору
 Re: Анализ времени на вставку записей в таблицу.  [new]
abe
Member

Откуда:
Сообщений: 8
Гость333, интересно, насколько можно сопоставлять результаты при вставке одной записи и большого количества записей.
18 дек 12, 16:30    [13649702]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить