Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите оптимизировать запрос / 14 сообщений из 14, страница 1 из 1
27.12.2019, 10:40
    #39908866
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оптимизировать запрос
вроде все индексы есть
статистику обновил
кеш планов почистил
с недавнего времени запрос стал работать ~ 1 мин
раньше отрабатывал 10 сек
спасибо
...
Рейтинг: 0 / 0
27.12.2019, 11:01
    #39908879
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оптимизировать запрос
Разбирайтесь со своими скалярными функциями. Больше там тормозить нечему.
...
Рейтинг: 0 / 0
27.12.2019, 11:27
    #39908889
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оптимизировать запрос
invm,

да, скорее всего [fnTableAdmin]

думаю, может развернуть ее в тело запроса
поможет?
по идее должно, ибо SARG
...
Рейтинг: 0 / 0
27.12.2019, 11:43
    #39908904
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оптимизировать запрос
listtoview,

Все функции, которые возможно, переделать на инлайновые.

А вот это
Код: sql
1.
2.
3.
				(dbo.fnGetUserId() = '4e15ddff-6840-11e6-9e3b-18a90550aa54' AND v.author_id = dbo.fnGetUserId())	-- задача	756137
				OR
				(dbo.fnGetUserId() = '497af2ea-0321-11e3-a05e-d8d385e43d10' AND v.author_id = dbo.fnGetUserId())	-- задача	985176

вообще эквивалентно
Код: sql
1.
2.
3.
				('4e15ddff-6840-11e6-9e3b-18a90550aa54' = v.author_id)	-- задача	756137
				OR
				('497af2ea-0321-11e3-a05e-d8d385e43d10' = v.author_id)	-- задача	985176
...
Рейтинг: 0 / 0
27.12.2019, 13:15
    #39908958
Shakill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оптимизировать запрос
invm, а если '4e15ddff-6840-11e6-9e3b-18a90550aa54' = v.author_id, но при этом скалярка возвращает другое значение
...
Рейтинг: 0 / 0
27.12.2019, 13:25
    #39908971
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оптимизировать запрос
Shakill,

Это возможно, конечно. В зависимости от содержимого скалярки.
Но мне сомнительно, что автор сего чуда закладывался на такой эффект.
...
Рейтинг: 0 / 0
27.12.2019, 14:44
    #39909059
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оптимизировать запрос
скорее всего закладывался

ну я понял, ф-и надо смотреть
...
Рейтинг: 0 / 0
30.12.2019, 13:40
    #39909837
VicSO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оптимизировать запрос
invm,

А вот это
Код: sql
1.
2.
3.
				(dbo.fnGetUserId() = '4e15ddff-6840-11e6-9e3b-18a90550aa54' AND v.author_id = dbo.fnGetUserId())	-- задача	756137
				OR
				(dbo.fnGetUserId() = '497af2ea-0321-11e3-a05e-d8d385e43d10' AND v.author_id = dbo.fnGetUserId())	-- задача	985176


А по мне так вообще
Код: sql
1.
2.
3.
4.
5.
6.
			
v.author_id = dbo.fnGetUserId() and dbo.fnGetUserId() in ('4e15ddff-6840-11e6-9e3b-18a90550aa54','497af2ea-0321-11e3-a05e-d8d385e43d10' )
-- за место этого
	('4e15ddff-6840-11e6-9e3b-18a90550aa54' = v.author_id)	-- задача	756137
				OR
	('497af2ea-0321-11e3-a05e-d8d385e43d10' = v.author_id)	-- задача	985176
...
Рейтинг: 0 / 0
09.01.2020, 15:55
    #39912092
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оптимизировать запрос
вынес отдельно условие
Код: sql
1.
DECLARE @is_admin VARCHAR(1) = dbo.fnTableAdmin('Visitors')


и все заработало
странно что оптимизатор не догадался
...
Рейтинг: 0 / 0
09.01.2020, 16:51
    #39912124
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оптимизировать запрос
listtoview,

Чтобы оптимизатор хотя бы пытался догадываться, ваши скалярки должны быть как минимум детерминированы.
...
Рейтинг: 0 / 0
10.01.2020, 15:04
    #39912451
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оптимизировать запрос
listtoview
вроде все индексы есть
статистику обновил
кеш планов почистил
с недавнего времени запрос стал работать ~ 1 мин
раньше отрабатывал 10 сек

спасибо


позврослел
...
Рейтинг: 0 / 0
10.01.2020, 16:24
    #39912513
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оптимизировать запрос
listtoview,

Код: sql
1.
2.
3.
4.
DECLARE @USERID sysname = dbo.fnGetUserId()

SELECT 
WHERE @USERID = ...
...
Рейтинг: 0 / 0
10.01.2020, 17:31
    #39912554
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оптимизировать запрос
Гавриленко Сергей Алексеевич
listtoview,

Чтобы оптимизатор хотя бы пытался догадываться, ваши скалярки должны быть как минимум детерминированы.

что значит детерминированы?
...
Рейтинг: 0 / 0
10.01.2020, 17:34
    #39912557
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оптимизировать запрос
listtoview
Гавриленко Сергей Алексеевич
listtoview,

Чтобы оптимизатор хотя бы пытался догадываться, ваши скалярки должны быть как минимум детерминированы.

что значит детерминированы?




https://docs.microsoft.com/ru-ru/sql/relational-databases/user-defined-functions/deterministic-and-nondeterministic-functions?view=sql-server-ver15
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите оптимизировать запрос / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]