2012-05-23 9 views
3

Что такое эквивалент Oracle SQL SET SET NOCOUNT ON?Что такое эквивалент Oracle SQL SET SET NOCOUNT ON?

Из SQL Server documentation:

SET NOCOUNT ON ... Останавливает сообщение, которое показывает подсчет количества строк, затронутых в заявлении Transact-SQL или хранимой процедуры из возвращаемых в качестве части результата set ...

Для хранимых процедур, которые содержат несколько операторов, которые не возвращают много фактических данных, или для процедур, которые содержат циклы Transact-SQL, установка SET NOCOUNT в положение ON может обеспечить значительное повышение производительности, поскольку сетевой трафик в значительной степени снижается.

+0

«SET ОБРАТНАЯ СВЯЗЬ OFF» в SQL * плюс приглашение. Для справки http://ss64.com/ora/syntax-sqlplus-set.html – BigMike

+2

@BigMike, который должен быть ответом со ссылкой на http://docs.oracle.com/cd/B19306_01/server.102/ b14357/ch12040.htm # i2698970 –

ответ

4

Там нет аналога в Oracle, когда set nocount on используются внутри хранимой процедуры, просто потому, что не нужно делать (внутри процедуры или функции).

лишь отдаленно соответствующий вещь set feedback off как было упомянуто BigMike

+0

Я не знаю SQL Server, но, читая эти документы, кажется, что если я запускаю скрипт с несколькими запросами, он возвращает что-то вроде набора результатов (или аналогичной структуры данных), содержащего каждый результат запроса, и информационной строки, содержащей номер строк, затронутых предыдущей инструкцией. Если он действительно работает таким образом, я могу понять, почему установка этого параметра может улучшить perf. Я прав? – BigMike

+1

@BigMike: Мне редко приходится использовать SQL Server самостоятельно, но это тоже мое понимание. Кроме того, я * думаю *, это также влияет на набор результатов, возвращаемый хранимой процедурой (но это было возрастом, так как я должен был кодировать в T-SQL) –

3

SET FEEDBACK OFF с SQL * plus запрос.

Для официальных документов, пожалуйста, обратитесь к this

+0

Эта документация предполагает, что команда действует только при выполнении инструкции в приглашении SQL * plus. В SQL Server 'SET NOCOUNT' влияет на поведение даже в неинтерактивных сценариях. Из документов MS «Для хранимых процедур, которые содержат несколько операторов, которые не возвращают много фактических данных, это может обеспечить значительное повышение производительности, поскольку сетевой трафик значительно сокращается». Это верно и для 'SET FEEDBACK'? –

+0

@ DanielRenshaw Я никогда не видел настройки настройки воздействия на производительность FEED ON или OFF. Обычно SET FEED и другие параметры связаны с генерацией отчетов (да, вы можете получать красивые отчеты с помощью SQL * Plus). Это немного отличается от MS Management Studio. Я искренне сомневаюсь, что выполнение SET NOCOUNT в хранимой процедуре и вызов ее через jdbc или ADO или что-то другое сократит время выполнения. – BigMike

+0

SET FLUSH иногда может улучшить производительность SQL * Plus, но он управляет удалением вывода (отформатированного или нет), приложения sql * plus. – BigMike

Смежные вопросы