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

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

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

10 ответов

21 просмотр

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта