powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Быть или не быть NOCOUNT вот в чем вопрос!!!
11 сообщений из 11, страница 1 из 1
Быть или не быть NOCOUNT вот в чем вопрос!!!
    #36919471
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если кто не знает, то это инструкция в ХП MSSQL, которая подавляет вывод информационных сообщений.
Коллеги, прошу высказывать ваше мнение по вопросу, указанному в названии топика.

Лично я не вижу ничего плохого в этой инструкции.

<BR><BR>I Have Nine Lives You Have One Only<BR>THINK!
...
Рейтинг: 0 / 0
Быть или не быть NOCOUNT вот в чем вопрос!!!
    #36919496
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже больше, в некоторых случаях, он просто необходим
...
Рейтинг: 0 / 0
Быть или не быть NOCOUNT вот в чем вопрос!!!
    #36919924
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошая тема для форума по MS Office.
...
Рейтинг: 0 / 0
Быть или не быть NOCOUNT вот в чем вопрос!!!
    #36920211
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно для этой ветки.
Т.к это проблема интерфейсной части
...
Рейтинг: 0 / 0
Быть или не быть NOCOUNT вот в чем вопрос!!!
    #36921187
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot, Получение без-записных резалтсетов на клиенте действительно нужно редко. Но ХП (и пакетные запросы) обычно потому и делаются что содержат в себе далеко не один-единственный select. И знать сколько записей было обработано в промежуточных запросах иногда очень полезная штука для отладки.
Например одна из отчетных систем у меня работает по такому принципу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
create procedure someSP (@dateFrom date, @dateTo date)
as
begin
   print 'найдено заказов'
   select * into #tmp from order where orderDate between @dateFrom and @dateTo
   print 'из них закрыто'
   update #tmp set state= 0  where amount = (select sum(amount) from payments where #tmp.id=payment.orderId)
   -- много разных других операций по фильтрации
   select * from #tmp
end
Ну а клиент сидит и читает те самые "плохие" резалтсеты которых вы так боитесь и пишет их в окошке "ждите идет работа". Пользователи очень даже довольны видеть что машина не умерла а что-то делает и даже видеть как и что она делает.


Virus квартирус, не читай переведенные мануалы, это в большинстве случаев не BOL, а BS.
Тот "писатель" который сказал что передача одного числа по сети существенно снизит производительность явно не дружит с головой.
...
Рейтинг: 0 / 0
Быть или не быть NOCOUNT вот в чем вопрос!!!
    #36921877
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНу а клиент сидит и читает те самые "плохие" резалтсеты которых вы так боитесь и пишет их в окошке "ждите идет работа". Пользователи очень даже довольны видеть что машина не умерла а что-то делает и даже видеть как и что она делает
я это реализовывал немного по другому, через SET CONTEXT_INFO
и сообщения читал в отдельном потоке, а запрос выполнялся асинхронно
...
Рейтинг: 0 / 0
Быть или не быть NOCOUNT вот в чем вопрос!!!
    #36921878
White Owl,

Ключевое слово "для отладки" . Если у вас на production-сервере в процедурах не отключен вывод отладочной информации, то очень сочувствую Вашим клиентам. Вот за это руки надо отрывать точно.
...
Рейтинг: 0 / 0
Быть или не быть NOCOUNT вот в чем вопрос!!!
    #36921883
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а кол-во записей формирую системной переменной @@ROWCOUNT
и тогда сообщение можно формировать намного более понятное, чем Ваше
сравните

Код: plaintext
1.
   print 'найдено заказов'
   select * into #tmp from order where orderDate between @dateFrom and @dateTo
в ответ получим
Код: plaintext
1.
найдено заказов
(79 row(s) affected)

и
Код: plaintext
1.
2.
    select * into #tmp from order where orderDate between @dateFrom and @dateTo
  print 'найдено ' + cast(@@ROWCOUNT) + ' заказов' 
Код: plaintext
найдено 79 заказов 



ИМХО так намного более понятнее для всех пользователей, а не только для продвинутых
...
Рейтинг: 0 / 0
Быть или не быть NOCOUNT вот в чем вопрос!!!
    #36921885
Передача одного числа по сети может производительность и не снизит, но когда такая процедура вызывается сотни раз в секунду, то левый трафик может приобрести существенные размеры.

P.S.
BOL читаю в оригинале.
...
Рейтинг: 0 / 0
Быть или не быть NOCOUNT вот в чем вопрос!!!
    #36923829
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Virus квартирусКлючевое слово "для отладки" . Если у вас на production-сервере в процедурах не отключен вывод отладочной информации, то очень сочувствую Вашим клиентам. Вот за это руки надо отрывать точно.А что, по твоему на основном сервере не бывает ошибок в данных? По моему, вести лог полезно везде и уж тем более на рабочем сервере. Не обязательно весь лог целиком показывать пользователям, но вести его очень полезно. Очень помогает в разборе полетов.
И вообще, для кого отладочная информация, а для кого и прогресс-бар :)


HandKotа кол-во записей формирую системной переменной @@ROWCOUNT
и тогда сообщение можно формировать намного более понятное, чем ВашеПрошу прощения, я показывал очень вырожденный вариант. Для иллюстрации идеи. На самом деле там почти никогда не используются тексты в чистом виде. Обычно клиенту посылаются только кода текстов или вообще ничего не посылается.
@@rowcount тоже можно использовать конечно, но его надо специально использовать. Тогда как автоматическая посылка работает самостоятельно.

Virus квартирусПередача одного числа по сети может производительность и не снизит, но когда такая процедура вызывается сотни раз в секунду, то левый трафик может приобрести существенные размеры.С чего это вдруг процедура делающая выборки будет вызываться сотни раз в секунду??? Сотни раз в секунду может идти только одна операция - вставка и то только если она делается каким-либо роботом. Все остальное только по запросу от пользователя а это уже явно не сотни раз в секунду.

Virus квартирусBOL читаю в оригинале.Тогда и цитируй из оригинала.
...
Рейтинг: 0 / 0
Быть или не быть NOCOUNT вот в чем вопрос!!!
    #36924615
White Owl,

В больших промышленных системах запросы могут идти и чаще.
И не обязательно от пользователей.
В процедуре может быть одновременно несколько запросов на получение данных, вставку и изменение.
Пример - платёжные системы. Там тысячи пользователей одновременно совершают операции с базой. При этом прежде чем что-то вставить в базу, бывает необходимо получить дополнительную информацию.

Не все системы построены на экселе, с помощью которого пара тётушек раз в месяц делает отчёты :)

P.S.
Цитирую откуда считаю нужным.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Быть или не быть NOCOUNT вот в чем вопрос!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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