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

Откуда:
Сообщений: 112
Добрый день, коллеги.

Сейчас проводим оптимизацию одной из систем и возникло желание использовать возможность отключения вывода лишнее информации через поднятие флага "NO COUNT" для всех пользовательских соединений.

Попытки осуществлялись как на SQL 2005 SP2, так и на SQL 2005 SP3.

Это делалось двумя способами:
1. Через стандартный графический интерфейс поднятие флага для подключений. Естественно проверялось что флаг активирован и поднят на закладке Running Values и даже перегружался сервер.
2. Второй способ через T-SQL:
use master
go
EXEC sp_configure 'show advanced option', '1'
go
reconfigure with override
go
exec sp_configure 'user options', 6008 (или просто 512 обнуляя все прочее)
go”

Как результат при всех попытках при открытии нового соединения мы продолжаем получать информацию по счетчику кол-ва затронутых строк.
Так же отмечу, что на закладке настройки подключений иные флаги не подняты, однако
при этом запрос "select @@options" выдает значение 5496 что означает наличие целого ряда поднятых флагов, но говорит, что флаг "NO COUNT" по прежнему не поднят.

Соотвественно возникает вопрос, если не поднят в настройках ни один флаг, то с чего вдруг возвращается информация о противном и почему не возвращается информация о поднятии нужного флага (т.е. я бы еще понял если было бы возвращено значение 512 или в крайнем случае 6008)?

При этом использование директивы "set nocount on" в активной сессии прекрасно работает и отключает вывод лишней информации.

Запрос Microsoft отправил, но они пока молчат.
17 сен 09, 14:20    [7673330]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2005 SP3 - установка NO COUNT  [new]
Glory
Member

Откуда:
Сообщений: 104760
MaxiBek

Как результат при всех попытках при открытии нового соединения мы продолжаем получать информацию по счетчику кол-ва затронутых строк.

И какое приложение открывает коннект ? И какие команды set оно при этом передает серверу ?
17 сен 09, 14:24    [7673362]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2005 SP3 - установка NO COUNT  [new]
MaxiBek
Member

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

Вообще это делается для MS CRM, но в данном случае я говорю о том, что соединение я открываю сам в студии и посылаю запрос на выборку данных.
17 сен 09, 14:29    [7673409]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2005 SP3 - установка NO COUNT  [new]
Glory
Member

Откуда:
Сообщений: 104760
MaxiBek
Glory,

Вообще это делается для MS CRM, но в данном случае я говорю о том, что соединение я открываю сам в студии и посылаю запрос на выборку данных.

Ну так и как вы проверили, какие команды серверу отсылает студия ?
17 сен 09, 14:32    [7673430]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2005 SP3 - установка NO COUNT  [new]
MaxiBek
Member

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

Да, еще для проверки что да как специально установил базу AdwentureWorks и на тестовом сервере и там проверял:
И как написано в статье http://technet.microsoft.com/ru-ru/library/ms189837(SQL.90).aspx - все работает, а вот попытка установить ффлаг по умолчанию для всех подключений - нет.
USE AdventureWorks;
GO
SET NOCOUNT OFF;
GO
-- Display the count message.
SELECT TOP(5)LastName
FROM Person.Contact
WHERE LastName LIKE 'A%';
GO
-- SET NOCOUNT to ON to no longer display the count message.
SET NOCOUNT ON;
GO
SELECT TOP(5) LastName
FROM Person.Contact
WHERE LastName LIKE 'A%';
GO
-- Reset SET NOCOUNT to OFF
SET NOCOUNT OFF;
GO
17 сен 09, 14:33    [7673445]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2005 SP3 - установка NO COUNT  [new]
MaxiBek
Member

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

Конечно, проверил:

EXEC sys.sp_configure N'user options', N'512'
GO
RECONFIGURE WITH OVERRIDE
GO

Это заскриптованная установка флага в графическом интерфейсе.
17 сен 09, 14:35    [7673462]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2005 SP3 - установка NO COUNT  [new]
Glory
Member

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

Да, еще для проверки что да как специально установил базу AdwentureWorks и на тестовом сервере и там проверял:
И как написано в статье http://technet.microsoft.com/ru-ru/library/ms189837(SQL.90).aspx - все работает, а вот попытка установить ффлаг по умолчанию для всех подключений - нет.

А где вы прочитали, что значения из user options нельзя изменить после коннекта ? И где вы прочитали, что сервер может как-то запретить клиентскому приложению изменять текущие настройки set-ов ?
17 сен 09, 14:36    [7673473]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2005 SP3 - установка NO COUNT  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Profiler смотретие, там видна строка конекта со всеми сетами
-------------------------------------
Jedem Das Seine
17 сен 09, 14:40    [7673509]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2005 SP3 - установка NO COUNT  [new]
MaxiBek
Member

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

Хм, А разве я говорил что где-то такое читал?
Я говорил о том, что новое подключение я открываю из студии, и направляю в базу свой прямой запрос к таблица. Соответственно я ожидаю, что когда я в студии открываю новое подключение, то оно считывает с сервера дефолтные настройки и запускается согласно им. Т.е. в частности должно получить информацию о нужном мне поднятом флаге.
17 сен 09, 14:40    [7673511]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2005 SP3 - установка NO COUNT  [new]
Glory
Member

Откуда:
Сообщений: 104760
MaxiBek
Glory,

Хм, А разве я говорил что где-то такое читал?
Я говорил о том, что новое подключение я открываю из студии, и направляю в базу свой прямой запрос к таблица. Соответственно я ожидаю, что когда я в студии открываю новое подключение, то оно считывает с сервера дефолтные настройки и запускается согласно им. Т.е. в частности должно получить информацию о нужном мне поднятом флаге.

Я вам в 3ий раз говорю. Никто и ничто не может помешать клиентскому приложению изменить текущие настройки после открытия коннекта. Неужели это непонятно ?
17 сен 09, 14:43    [7673541]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2005 SP3 - установка NO COUNT  [new]
MaxiBek
Member

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

Да и вам не первый раз говорю, определяю необходимые параметры для подключения в настройках сервера, и что когда я открываю новое подключение, то жду что оно изначально получит дефолтные значения, пока я в этой сессии не определю новые нужные мне в этой сессии настройки.
И естественный вопрос возникает почему игнорируются указанные в настройках сервера параметры, когда иной еще пока в принципе не определено. Даже возникает ощущение, что есть еще какой-то дефолтный набор параметров для каждой базы в отдельности, который превалирует над настройками сервера (как скажем в случае кодировки, которая у базы может быть отлично от дефолтной сервера).
Если так, то где это зарыто, чтобы переопределить?
17 сен 09, 14:52    [7673654]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2005 SP3 - установка NO COUNT  [new]
MaxiBek
Member

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

Профайлером посмотрел, почему то при открытии нового соединения происходит следующие установки:
SET ROWCOUNT 0 SET TEXTSIZE 2147483647 SET NOCOUNT OFF SET CONCAT_NULL_YIELDS_NULL ON SET ARITHABORT ON SET LOCK_TIMEOUT -1 SET QUERY_GOVERNOR_COST_LIMIT 0 SET DEADLOCK_PRIORITY NORMAL SET TRANSACTION ISOLATION LEVEL READ COMMITTED SET ANSI_NULLS ON SET ANSI_NULL_DFLT_ON ON SET ANSI_PADDING ON SET ANSI_WARNINGS ON SET CURSOR_CLOSE_ON_COMMIT OFF SET IMPLICIT_TRANSACTIONS OFF SET QUOTED_IDENTIFIER ON

Т.е. как видно NO COUNT отключается, почему - непонятно.
17 сен 09, 14:55    [7673674]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2005 SP3 - установка NO COUNT  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
дефолтній набор сетов есть у каждого провайдера с помощью которого ві откріваете соединение к серверу,вот оно и устанавливаеться при клиентском подключении к серверу.
-------------------------------------
Jedem Das Seine
17 сен 09, 14:56    [7673685]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2005 SP3 - установка NO COUNT  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> Да и вам не первый раз говорю, определяю необходимые параметры для
> подключения в настройках сервера, и что когда я открываю новое
> подключение, то жду что оно изначально получит дефолтные значения, пока
> я в этой сессии не определю новые нужные мне в этой сессии настройки.
> И естественный вопрос возникает почему игнорируются указанные в
> настройках сервера параметры, когда иной еще пока в принципе не
> определено. Даже возникает ощущение, что есть еще какой-то дефолтный
> набор параметров для каждой базы в отдельности, который превалирует над
> настройками сервера (как скажем в случае кодировки, которая у базы может
> быть отлично от дефолтной сервера).
> Если так, то где это зарыто, чтобы переопределить?

настройки сервера имеют самый низкий из возможных приоритет.
более высокий приоритет у настроек уровня базы.
самый высокий - у явных SET-ов.
так вот - студия как раз явно (SET-ами) устанавливает многие
из параметров. настройте трассу в профайлере и убедитесь.

Posted via ActualForum NNTP Server 1.4

17 сен 09, 14:58    [7673706]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2005 SP3 - установка NO COUNT  [new]
MaxiBek
Member

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

Вот как? Понял. Спасибо. И убедился.
17 сен 09, 15:00    [7673727]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2005 SP3 - установка NO COUNT  [new]
Glory
Member

Откуда:
Сообщений: 104760
MaxiBek
Maxx,

Профайлером посмотрел, почему то при открытии нового соединения происходит следующие установки:
SET ROWCOUNT 0 SET TEXTSIZE 2147483647 SET NOCOUNT OFF SET CONCAT_NULL_YIELDS_NULL ON SET ARITHABORT ON SET LOCK_TIMEOUT -1 SET QUERY_GOVERNOR_COST_LIMIT 0 SET DEADLOCK_PRIORITY NORMAL SET TRANSACTION ISOLATION LEVEL READ COMMITTED SET ANSI_NULLS ON SET ANSI_NULL_DFLT_ON ON SET ANSI_PADDING ON SET ANSI_WARNINGS ON SET CURSOR_CLOSE_ON_COMMIT OFF SET IMPLICIT_TRANSACTIONS OFF SET QUOTED_IDENTIFIER ON

Т.е. как видно NO COUNT отключается, почему - непонятно.

Неужели вы смогли это сделать ?!
Может теперь вы сможете также понять, что в клиентских программах, к коим относится студия, их создатели предусматривают возможность изменения настроек коннекта ?
И даже в меню предлагают определить эти настройки
17 сен 09, 15:05    [7673775]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить