169 похожих чатов

Привет. Вопрос не простой по QUOTED_IDENTIFIER. Есть Java приложение которое

коннектится к сиквелу, дёргает процедуру, которая выбирает данные из таблички, на табличке построен индекс по предикатам для выборки. Процедура скомпилирована с параметром SET QUOTED_IDENTIFIER ON и при запуске из студии отрабатывает за пару сек, запуск из приложения заставляет её выполняться пару минут и с использованием скана, фильтр из приложения по тем же предикатам. Вопрос, какое значение по умолчанию у драйвера JDBC на параметр QUOTED_IDENTIFIER, где приоритетнее установка параметра, в процедуре или у драйвера и как отловить строку подключения приложения к сиквелу ?

10 ответов

7 просмотров

http://sqlcom.ru/dba-tools/sql-server-management-studio-optimization-part-1/

Богдан- Автор вопроса
Александр Ройтман
http://sqlcom.ru/dba-tools/sql-server-management-s...

Тут наверное немножко не то, разница поведений наблюдается при установке параметра в значение OFF и дальнейшая перекомпиляция процедуры. По умолчанию процедура откомпилирована с значением ON. Видимо при вызове из приложения, в строке подключения указано OFF и оно управляет

Богдан
Тут наверное немножко не то, разница поведений наб...

https://docs.microsoft.com/ru-ru/sql/t-sql/statements/create-procedure-transact-sql?view=sql-server-ver15

Богдан- Автор вопроса

И как мне это отследить :) ?

Богдан
И как мне это отследить :) ?

Ну и да, Александр выше тебе дал ссылку, The Database Engine saves the settings of both SET QUOTED_IDENTIFIER and SET ANSI_NULLS when a Transact-SQL procedure is created or modified. These original settings are used when the procedure is executed. Therefore, any client session settings for SET QUOTED_IDENTIFIER and SET ANSI_NULLS are ignored when the procedure is running. Это значит, что процедурам вообще на это пофиг, и даже я тебе наврал (я спутал с другим случаем, когда выполнялись голые запросы, без процедур, либо динамические через EXEC)

То есть мораль: 0) ищи "дефектный" запрос 1) ищи от него план 2) смотри, как он выполняется, постигай, почему, и исправляй запрос/ставь хинты/создавай индексы.

Богдан- Автор вопроса
Богдан- Автор вопроса

Чёткий вариант, спасибо, сейчас попробую

Богдан
Чёткий вариант, спасибо, сейчас попробую

В большинстве случаев разница бывает в arithabort, dateformat и language

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
А кто такой мужчина в твоем понимании Азиз?
who?です 🐈
11
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Ну значит тебе повезло, мы же про транк говорим оба?
Александр (Rouse_) Багель
11
Всем ку. Подскажите, если задекларировал массив так: int arr[10] = {1, 2, 3, 4}, то в arr[4] будет мусор или нуль?
Sasha K
14
Карта сайта