Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Roust_m Member Откуда: Сидней Сообщений: 1166 |
Добрый день, Есть партицированная таблица, в которой 15000 партиций. Есть хранимка, которая в цикле вставляет порядка 20-30 записей (по одной) в эту таблицу в одну и ту же партицию. Занимает этот процесс несколько секунд. Если использую таблицу без партиций, то происходит все практически мгновенно. В чем может быть проблема? Вот версия сиквела: Microsoft SQL Azure (RTM) - 12.0.2000.8 Aug 27 2019 17:56:41 Copyright (C) 2019 Microsoft Corporation Спасибо. |
2 окт 19, 10:15 [21984572] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
Roust_m, все не бесплатно, посмотрите план, там будет весело |
2 окт 19, 10:16 [21984574] Ответить | Цитировать Сообщить модератору |
Roust_m Member Откуда: Сидней Сообщений: 1166 |
Но по идее-то вставка записи в маленькую партицию должна быть быстрее чем в огромную таблицу на десятки миллионов записей, разве нет? |
||
2 окт 19, 10:17 [21984575] Ответить | Цитировать Сообщить модератору |
msLex Member Откуда: Сообщений: 8730 |
|
||||
2 окт 19, 10:18 [21984576] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
странное утвержение, почему? надо ж понять в какую вставлять, ну и вообще вставлять в какую нибудь сферическую кучу на миллиарды без индексов и идентити всё равно не победить по скорости |
||||
2 окт 19, 10:19 [21984577] Ответить | Цитировать Сообщить модератору |
Roust_m Member Откуда: Сидней Сообщений: 1166 |
Обе таблицы имеют айдентити и уникальный индекс по двум полям. Когда убираешь уникальный индес вставка в партицированную таблицу становится быстрой. Если есть индекс партицированный (путем добавленияч туда ключа третьим столбцом) или не партицированный, то вставка идет медленно. |
||||
2 окт 19, 11:38 [21984675] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
ну привет, если индекс есть, надо сортировать перед вставкой. планы-то посмотрите при вставке с индексом и без |
2 окт 19, 12:21 [21984730] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8350 |
Roust_m, смотрите на план запроса, возможно у вас идёт просмотр всех секций. |
2 окт 19, 12:51 [21984760] Ответить | Цитировать Сообщить модератору |
Roust_m Member Откуда: Сидней Сообщений: 1166 |
Вставка идет по одной записи и в одну и туже партициюю. |
||
3 окт 19, 02:58 [21985493] Ответить | Цитировать Сообщить модератору |
Критик Member Откуда: Москва / Калуга Сообщений: 34756 Блог |
Roust_m, В обычной версии идет пересортировка в tempdb перед вставкой, скорее всего тут то же самое. |
3 окт 19, 03:42 [21985503] Ответить | Цитировать Сообщить модератору |
PizzaPizza Member Откуда: Сообщений: 417 |
Кластерный индекс есть? Вставляется все только в последнюю партицию? |
||||
3 окт 19, 05:12 [21985507] Ответить | Цитировать Сообщить модератору |
Roust_m Member Откуда: Сидней Сообщений: 1166 |
PizzaPizza, Да, есть, он на id (IDENTITY) и pkey (ключ партицирования). Вставляться может в любую партицию, не только в последнюю |
3 окт 19, 05:35 [21985509] Ответить | Цитировать Сообщить модератору |
PizzaPizza Member Откуда: Сообщений: 417 |
Вставляется в любую? То есть ваш кластерный Id не включен в секционный ключ? Надо мне перечитать про партиции, а то я запутался по моему. |
||
3 окт 19, 06:31 [21985515] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 4805 |
А там колумнстор или нет? И сколько всего записей. При 15000 партициях будет сильный оверхед. |
||
3 окт 19, 13:21 [21985825] Ответить | Цитировать Сообщить модератору |
Гулин Федор Member Откуда: МИНСК Сообщений: 1298 |
мне кажется что DDL таблицы помогло бы отвечающим |
3 окт 19, 15:39 [21985969] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
планы бы помогли. но он не выкладывает |
3 окт 19, 15:45 [21985981] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |