|
|
|
Время работы хранимки сократилось. Почему?
|
|||
|---|---|---|---|
|
#18+
Имеется таблица, кластерный индекс которой построен на n полях, являющихся внешним ключом. Хранимая процедура отрабатывает за время ~2t. С таблицей производятся следующие действия: 1) добавляется новый столбец (в данный момент не являющийся внешним ключом, но в перспективе может им стать) 2) данный столбец включается в индекс (становится последним столбцом в индексе) 3) т.к. условно значениями столбца могут быть значения от 1 до k ( в нашем тесте k = 10), данные таблицы дублируем k раз, изменяя только значение добавленного столбца. Т.е. получили на выходе (кол-во строк до) * k. Цель: получить k отдельных наборов данных. 4) модифицируем хранимую процедуру для выборки с учетом набора данных: формальным параметром в процедуру передаем номер набора и добавляем при фильтрации результата проверку на соответствие заданному номеру. время работы модифицированной хранимой процедуры ~t конкретные цифры: количество записей в таблице до дубликации: 1200 000 после 12 000 000 время выполнения хранимой процедуры изначально ~34 секунды после (на увеличенном в 10 раз наборе данных) ~18 секунд Почему время могло сократиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2008, 21:23 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35061320&tid=1544092]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
179ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 494ms |

| 0 / 0 |
