|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
На таком запросе в процедуре Код: sql 1. 2. 3.
получаю среди прочего Clustered Index Scan на выборке SELECT id,zorder,zid from @tmp_z2 Эта переменная таблица объявлена так: Код: sql 1. 2. 3. 4. 5. 6.
Я думал, что первичного ключа хватит, тем более, что выборка не делается, а вся таблица вливается в основную. Там записей до 500-1000 Как изменить план, заодно и ускорить вставку? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 17:29 |
|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
Ролг Хупин На таком запросе в процедуре Код: sql 1. 2. 3.
получаю среди прочего Clustered Index Scan на выборке SELECT id,zorder,zid from @tmp_z2 Эта переменная таблица объявлена так: Код: sql 1. 2. 3. 4. 5. 6.
Я думал, что первичного ключа хватит, тем более, что выборка не делается, а вся таблица вливается в основную. Там записей до 500-1000 Как изменить план, заодно и ускорить вставку? в @таблице до недавнего времени (sql2019) подразумевалась одна запись кроме того, у вас выборка всей таблицы - что там еще может быть кроме скана? попробуйте с #таблицей, но, исходя из вводной информации, мало что изменится ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 17:43 |
|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
komrad Ролг Хупин На таком запросе в процедуре Код: sql 1. 2. 3.
получаю среди прочего Clustered Index Scan на выборке SELECT id,zorder,zid from @tmp_z2 Эта переменная таблица объявлена так: Код: sql 1. 2. 3. 4. 5. 6.
Я думал, что первичного ключа хватит, тем более, что выборка не делается, а вся таблица вливается в основную. Там записей до 500-1000 Как изменить план, заодно и ускорить вставку? в @таблице до недавнего времени (sql2019) подразумевалась одна запись кроме того, у вас выборка всей таблицы - что там еще может быть кроме скана? попробуйте с #таблицей, но, исходя из вводной информации, мало что изменится обана! а можно расшифровать для чяйников, а то как-то ошарашила новость. Реально до SQL 2019 в @ таблице одна запись ? у меня влезало дофига и в 2016... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 17:52 |
|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
Ролг Хупин komrad пропущено... в @таблице до недавнего времени (sql2019) подразумевалась одна запись кроме того, у вас выборка всей таблицы - что там еще может быть кроме скана? попробуйте с #таблицей, но, исходя из вводной информации, мало что изменится обана! а можно расшифровать для чяйников, а то как-то ошарашила новость. Реально до SQL 2019 в @ таблице одна запись ? у меня влезало дофига и в 2016... ну, например : https://www.red-gate.com/simple-talk/sql/performance/improve-row-count-estimates-for-table-variables-without-changing-code/ A table variable is defined using a DECLARE statement in a batch or stored procedure. Table variables don’t have distribution statistics and don’t trigger recompiles. Because of this, SQL Server is not able to estimate the number of rows in a table variable like it does for normal tables. When the optimizer compiles code that contains a table variable, prior to 15.x, it assumes a table is empty. This assumption causes the optimizer to compile the query using an expected row count of 1 for the cardinality estimate for a table variable. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 17:58 |
|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
авторРеально до SQL 2019 в @ таблице одна запись? Я думаю, имелось в виду, что оптимизатор до 2019 SQL Server полагал, что в табличной переменной сидит одна запись, а напихать их туда можно и миллион ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 17:58 |
|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
Ролг Хупин у меня влезало дофига и в 2016... подразумевалось!=влезало ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 18:01 |
|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
komrad Ролг Хупин у меня влезало дофига и в 2016... подразумевалось!=влезало вроде бы отлегло, но остался червь сомнений ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 18:09 |
|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
Ролг Хупин, сейчас оптимизатор оценивает как 100 записей. Табличные переменные нет смысла использовать для ускорения запросов, только головняк от этого. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 21:52 |
|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
Владислав Колосов, «Сейчас» - это sql2019 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 21:54 |
|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
Недоумение. Как можно вообще ускорить запрос, который выбирает все поля всех записей таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2021, 01:07 |
|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
fkthat Недоумение. Как можно вообще ускорить запрос, который выбирает все поля всех записей таблицы? Уменьшить объемы данных в таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2021, 18:01 |
|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
fkthat Недоумение. Как можно вообще ускорить запрос, который выбирает все поля всех записей таблицы? аналогичное недоумение. Как говорил один персонаж : "Кабы при моей работе бабы не нужны были, я бы с ними слова не сказал." (ц) Вот и в моем случае, просматривая явно плохой план, казалось бы, простого запроса - перекидывания небольшого множества записей из временной таблицы в постоянную, и вот, завелся, что можно оптимизировать по всему плану. Вижу несколько странных мест, вот одно из них. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 11:18 |
|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
о боже, это же из серии "жить вообще вредно". скан это плохо. но выбрать **все** без скана невозможно. не надо циклиться на том, где вариантов просто нет авторКак изменить план, заодно и ускорить вставку? ну, если ПК там только для красоты, не делай его вообще. при заполнении переменной не надо будет сортировать гуиды, а вместо Clustered Index Scan будет Table Scan, вот и смена плана ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 17:30 |
|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
Ролг Хупин просматривая явно плохой план А как ты определяешь что он "явно плохой"? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2021, 02:19 |
|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
Yasha123 ну, если ПК там только для красоты, не делай его вообще. Я что-то вообще сомневаюсь, что на таблице в 500 записей по 96 байт когда-либо будет использоваться хоть какой-то индекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2021, 06:16 |
|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
fkthat Ролг Хупин просматривая явно плохой план А как ты определяешь что он "явно плохой"? Злые люди пишут такое, вот тут, например: https://www.sqlshack.com/sql-server-query-execution-plan-beginners-clustered-index-operators/#:~:text=Clustered index scan&text=Good or bad: If I,Index Scan, can degrade performance. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2021, 14:02 |
|
В плане: Clustered Index Scan и пишут, что это плохо
|
|||
---|---|---|---|
#18+
fkthat Yasha123 ну, если ПК там только для красоты, не делай его вообще. Я что-то вообще сомневаюсь, что на таблице в 500 записей по 96 байт когда-либо будет использоваться хоть какой-то индекс. смешно. ПК вешают для обеспечения уникальности. хоть там и 2 строки будет, ПК есть -> уникальность проверяется, нету - не проверяется. "для красоты" имелось в виду нвесили "для порядка", а сами генерим строки с newid() и повторений точно не будет ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2021, 14:17 |
|
|
start [/forum/topic.php?fid=46&fpage=31&tid=1684987]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 151ms |
0 / 0 |