powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите оптимизировать запрос
14 сообщений из 14, страница 1 из 1
Помогите оптимизировать запрос
    #39908866
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вроде все индексы есть
статистику обновил
кеш планов почистил
с недавнего времени запрос стал работать ~ 1 мин
раньше отрабатывал 10 сек
спасибо
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос
    #39908879
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разбирайтесь со своими скалярными функциями. Больше там тормозить нечему.
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос
    #39908889
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm,

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

думаю, может развернуть ее в тело запроса
поможет?
по идее должно, ибо SARG
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос
    #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
Помогите оптимизировать запрос
    #39908958
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm, а если '4e15ddff-6840-11e6-9e3b-18a90550aa54' = v.author_id, но при этом скалярка возвращает другое значение
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос
    #39908971
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakill,

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

ну я понял, ф-и надо смотреть
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос
    #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
Помогите оптимизировать запрос
    #39912092
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вынес отдельно условие
Код: sql
1.
DECLARE @is_admin VARCHAR(1) = dbo.fnTableAdmin('Visitors')


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

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

спасибо


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

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

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

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

что значит детерминированы?
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос
    #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
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите оптимизировать запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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