Имя: Пароль:
1C
1C 7.7
v7: 1C++ + SET NOCOUNT ON
0 dk
 
22.10.13
15:56
1. Какой прирост в процентах дает SET NOCOUNT ON?
2. Когда противопоказано SET NOCOUNT ON
3. Если все данные крутятся на сервере + темповые таблицы, то есть ли смысл в SET NOCOUNT ON
1 mehfk
 
22.10.13
16:02
(0) Как вы понимаете значение этих инструкций? Потому как складывается впечатление, что никак.
http://technet.microsoft.com/ru-ru/library/ms189837.aspx
2 dk
 
22.10.13
16:04
(1) справку осилил до создания темы однако )
3 dk
 
22.10.13
16:05
если я нигде не использую @@ROWCOUNT, то можно смело использовать SET NOCOUNT ON ?
может 1с++ где-нить скрыто этот признак использует
4 МихаилМ
 
22.10.13
16:07
для несколько запросов то для odbc  SET NOCOUNT ON  обязателен
чтобы вернуть последний результат
5 mehfk
 
22.10.13
16:13
(3) Нет, о том что в результате работы запроса может получиться несколько рекордсетов, слышали?
6 trad
 
22.10.13
17:07
(3) SET NOCOUNT ON/OFF никак не влияет на @@ROWCOUNT
7 dk
 
22.10.13
17:07
(5) типа пакетного запроса?
и что с ними?
8 Rie
 
22.10.13
17:11
(7) Сильно не понял. Количество строк имеет привычку возвращаться как результат запроса. SET NOCOUNT это запрещает (ну или разрешает). Со всеми отсюда вытекающими.
9 rsv
 
22.10.13
17:13
(0) Откл Вкл   сообщений при выполнении запросов .  Как то так.   Выключать при использовании триггеров в 1С 77 . Иначе не взлетит.
10 dk
 
22.10.13
17:18
както все расплывчато
толи никто не в теме
толи вопросы в 0 тупые и отвечать никто не хочет
11 rsv
 
22.10.13
17:20
(10) 1.Открой QA/MS
     2. Выполни  

SET NOCOUNT ON
Select * from ТвояТаблица

Что пишет в окне сообщений ?

3.

SET NOCOUNT OFF
Select * from ТвояТаблица

Что пишет в окне сообщений ?
12 Rie
 
22.10.13
17:22
(10) Всё как раз конкретно. Посмотри описание ВыполнитьИнструкцию(). И подумай, а что произойдёт, если ей подсунуть что-то сложносочинённое.
13 dk
 
22.10.13
17:27
(11) ну то что не выводит сообщения я знаю, тока это к 0 никакого отношения
(12) у меня куча выполнитьскалярный а вот выпонитьинструкцию уже простой
14 trad
 
22.10.13
17:29
Короче в хранимках и триггурах используй всегда SET NOCOUNT ON
В батчах с DML запросами используй всегда SET NOCOUNT ON
Кроме единственного случая когда количество строк после DML запроса надо получить методом ВыполнитьИнструкцию()
(что бы ВыполнитьИнструкцию() вернул количество обработанных строк нужен set nocount off)
15 Rie
 
22.10.13
17:32
(13) О! Посмотри описание ВыполнитьСкалярный! Не знаю, как сейчас, а раньше в описании было "Запрос может возвращать количество обработанных строк: в этом случае возвращается это значение".
16 Rie
 
22.10.13
17:34
+(15) Тут просто непонятно, что именно тебе непонятно. Поэтому все и гадают.
17 dk
 
22.10.13
17:36
1. Какой прирост в процентах дает SET NOCOUNT ON?
18 dk
 
22.10.13
17:38
1-3%
4-8%
8-15%
больше
19 ADirks
 
22.10.13
17:39
(17) 100500
не, я серьёзно  :)
когда 1С не падает - это же здорово
20 Rie
 
22.10.13
17:43
(18) Да особо никакого. Это - как презерватив. (Je m'excuse pour mon fran?ais).
21 dk
 
22.10.13
17:56
просто пишут, что ускоряет и уменьшает сетевой трафик до сервера
брешут?
22 ADirks
 
22.10.13
17:58
(21) конечно уменьшает, байт на 40
а так, см. что trad написал - вот в этих случаях получишь вылет
23 Rie
 
22.10.13
17:59
(21) Хм... На мой непросвещённый взгляд, SET NOCOUNT ON меняет семантику самого запроса (в разумных пределах). А если изменён запрос - а, соответственно, иной результат выдаёт - то по фигу, какой там трафик (уж несколько байт об асфальт - это как-то не в тему).
Но если кто опровергнет - с интересом послушаю :-)
24 МуМу
 
22.10.13
19:29
(0) Лень отвечать подробно. В вырожденных случаях может достигать - 20%. В реальных системах не более 1-2 %. Обосновывать не буду - экспертная оценка:)
25 ADirks
 
22.10.13
19:49
(24) Нифига себе... А где такие случаи были? (просто любопытство, праздное)
26 trad
 
22.10.13
21:45
(22) эээ Какой-такой вылет, ты о чем?
27 ADirks
 
23.10.13
06:40
(26) Обыкновенный вылет, с непомню каким сообщением, когда в sp'шке или триггере есть хоть один запрос, и нет Set NoCount ON.
28 trad
 
23.10.13
09:01
(27) так я и написал нужен set nocount on, а ты пишешь делай как trad - получишь вылет
29 varelchik
 
23.10.13
09:03
(27) подтверждаю на все 100.
в тригерах как раз нуну ставить иначе вылет 100%.
Сам напоролся когда в первые запустил тригеры.