Я все еще немного изучаю сервер sql и недавно наткнулся на запрос select в хранимой процедуре, которая вызывала очень медленное заполнение набора данных в C#. Сначала я подумал, что это должно было сделать с .NET, но затем нашел предложение поставить в хранимой процедуре:sql server set implicit_transactions off и другие опции
набор implicit_transactions от
это, кажется, чтобы вылечить его, но я хотел бы знать, почему же я видел другие варианты, такие как:
- набор NOCOUNT от
- набор ARITHABORT на
- набор CONCAT_NULL_YIELDS_NULL на
- набор ANSI_NULLS на
- набор CURSOR_CLOSE_ON_COMMIT от
- набор ANSI_NULL_DFLT_ON на
- множества ANSI_PADDING на
- набор ANSI_WARNINGS на
- множества QUOTED_IDENTIFIER на
Кто-нибудь знает, где найти хорошую информацию о том, что каждый из них делает и то, что безопасно использовать, когда я хранил процедуры настройки только для запроса данных для просмотра.
Я должен обратить внимание только на то, чтобы остановить обычное использование/не использовать обсуждение хранимых процедур. Эти запросы представляют собой сложные выражения выбора, используемые в нескольких программах на нескольких языках, это лучшее место для них.
Edit: Получил мой ответ не в конечном итоге полностью рассматривать все варианты, но нашел
SET TRANSACTION READ ISOLATION УРОВЕНЬ UNCOMMITTED
Ускорен сложные запросы резко, я не беспокоясь о грязных чтениях в этом случае.
Было ли установлено «implicit_transactions» единственное заявление, которое вы добавили? – 2008-11-22 05:29:04