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

Откуда: Калуга/Москва
Сообщений: 139
Есть таблица с clustered columnstore index + unique nonclustered index по id.
Почему в запросе с сортировкой по id используется index scan по unique index + lookup по columnstore вместо columnstore scan?
Т.к. в первом случае запрос выполняется 5 мин., а втором 2 сек.
11 апр 19, 10:51    [21859053]     Ответить | Цитировать Сообщить модератору
 Re: Не используется columnstore  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4738
boltnik
Есть таблица с clustered columnstore index + unique nonclustered index по id.
Почему в запросе с сортировкой по id используется index scan по unique index + lookup по columnstore вместо columnstore scan?
Т.к. в первом случае запрос выполняется 5 мин., а втором 2 сек.

покажите

select @@version 
11 апр 19, 10:55    [21859058]     Ответить | Цитировать Сообщить модератору
 Re: Не используется columnstore  [new]
boltnik
Member

Откуда: Калуга/Москва
Сообщений: 139
komrad,

автор
Microsoft SQL Server 2016 (SP2-CU4) (KB4464106) - 13.0.5233.0 (X64) Nov 3 2018 00:01:54 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: )
11 апр 19, 11:04    [21859074]     Ответить | Цитировать Сообщить модератору
 Re: Не используется columnstore  [new]
Владислав Колосов
Member

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

потому, что оптимизатор оценивает этот план как более дешёвый.
11 апр 19, 13:35    [21859372]     Ответить | Цитировать Сообщить модератору
 Re: Не используется columnstore  [new]
boltnik
Member

Откуда: Калуга/Москва
Сообщений: 139
Больше похоже что columnstore не подходит для paging.


DROP TABLE IF EXISTS test;

CREATE TABLE test
(
	id uniqueidentifier,
	a datetime,
	b int
)

CREATE UNIQUE INDEX ix ON [dbo].[test](id)

CREATE CLUSTERED COLUMNSTORE INDEX [CSIX] ON [dbo].[test] 
GO

INSERT INTO test VALUES (newid(),getdate(),rand())
GO 10000


Попробуйте с top/offset и без.

SELECT [id]
      ,[a]
      ,[b]
FROM [dbo].[test]
ORDER BY id
OFFSET 0 ROWS FETCH NEXT 25 ROWS ONLY
11 апр 19, 13:42    [21859386]     Ответить | Цитировать Сообщить модератору
 Re: Не используется columnstore  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4738
boltnik,

ваш случай?
https://stackoverflow.com/questions/49662632/rowstore-index-on-clustered-columnstore-cardinality-estimation-mistake
11 апр 19, 13:44    [21859390]     Ответить | Цитировать Сообщить модератору
 Re: Не используется columnstore  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4738
boltnik
Больше похоже что columnstore не подходит для paging.


DROP TABLE IF EXISTS test;

CREATE TABLE test
(
	id uniqueidentifier,
	a datetime,
	b int
)

CREATE UNIQUE INDEX ix ON [dbo].[test](id)

CREATE CLUSTERED COLUMNSTORE INDEX [CSIX] ON [dbo].[test] 
GO

INSERT INTO test VALUES (newid(),getdate(),rand())
GO 10000


кстати, кластерный колумнстор лучше создавать до обычных индексов
11 апр 19, 13:46    [21859397]     Ответить | Цитировать Сообщить модератору
 Re: Не используется columnstore  [new]
Remind
Member

Откуда: UK
Сообщений: 427
boltnik
Почему в запросе с сортировкой по id используется index scan по unique index + lookup по columnstore вместо columnstore scan?
Т.к. в первом случае запрос выполняется 5 мин., а втором 2 сек.

Актуальный план может быть покажете или хотябы тестовые данные чтобы его можно было воспроизвести.
11 апр 19, 15:58    [21859638]     Ответить | Цитировать Сообщить модератору
 Re: Не используется columnstore  [new]
boltnik
Member

Откуда: Калуга/Москва
Сообщений: 139
Remind,
Я написал выше как воспроизвести эту проблему.
11 апр 19, 16:43    [21859707]     Ответить | Цитировать Сообщить модератору
 Re: Не используется columnstore  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6142
boltnik
Remind,
Я написал выше как воспроизвести эту проблему.

так и ответили
OPTION (use hint('DISABLE_OPTIMIZER_ROWGOAL'))
11 апр 19, 16:50    [21859716]     Ответить | Цитировать Сообщить модератору
 Re: Не используется columnstore  [new]
boltnik
Member

Откуда: Калуга/Москва
Сообщений: 139
TaPaK,
Да, на тестовых данных это помогло. Но на реальных нет.
11 апр 19, 16:53    [21859718]     Ответить | Цитировать Сообщить модератору
 Re: Не используется columnstore  [new]
Remind
Member

Откуда: UK
Сообщений: 427
boltnik
Remind,
Я написал выше как воспроизвести эту проблему.

Не воспроизводится.
Или вы ожидаете что с TOP(25) обязательно должен быть columnstore scan?
11 апр 19, 17:03    [21859729]     Ответить | Цитировать Сообщить модератору
 Re: Не используется columnstore  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6142
boltnik
TaPaK,
Да, на тестовых данных это помогло. Но на реальных нет.

для упоротых WITH (FORCESCAN )
11 апр 19, 17:06    [21859733]     Ответить | Цитировать Сообщить модератору
 Re: Не используется columnstore  [new]
dklim.kzn
Member

Откуда:
Сообщений: 86
TaPaK
boltnik
TaPaK,
Да, на тестовых данных это помогло. Но на реальных нет.

для упоротых WITH (FORCESCAN )


как надежно упоротый - поддерживаю
лучше прибить гвоздями, чем через какое-то время получить изменение плана
forcescan/forceseek куда четче разного тюнинга и изящного recompile на конкретные значения переменных
хотя последний и удобен для поиска быстрого варианта
12 апр 19, 14:50    [21860600]     Ответить | Цитировать Сообщить модератору
 Re: Не используется columnstore  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6142
dklim.kzn
TaPaK
пропущено...

для упоротых WITH (FORCESCAN )


как надежно упоротый - поддерживаю
лучше прибить гвоздями, чем через какое-то время получить изменение плана
forcescan/forceseek куда четче разного тюнинга и изящного recompile на конкретные значения переменных
хотя последний и удобен для поиска быстрого варианта

как повзрослеете и начнёте думать о ресурсах, а не ов ремени - приходите
12 апр 19, 14:56    [21860604]     Ответить | Цитировать Сообщить модератору
 Re: Не используется columnstore  [new]
dklim.kzn
Member

Откуда:
Сообщений: 86
TaPaK
dklim.kzn
пропущено...


как надежно упоротый - поддерживаю
лучше прибить гвоздями, чем через какое-то время получить изменение плана
forcescan/forceseek куда четче разного тюнинга и изящного recompile на конкретные значения переменных
хотя последний и удобен для поиска быстрого варианта

как повзрослеете и начнёте думать о ресурсах, а не ов ремени - приходите


Если Вы что-то сказать хотели - так и скажите.
Особенно для конкретного случая.
Когда ресурсы почему-то - не вопрос.
12 апр 19, 22:26    [21860922]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить