SQL Server ARITHABORT

Какими персонажами вы должны и которые вы не должны убежать, действительно зависит от того, с чем вы работаете.

Для PCRE и большинства других так называемых Perl-совместимых ароматов избегайте этих внешних классы символов:

.^$*+?()[{\|

и эти внутренние классы символов:

^-]\

Для POSIX расширенных регулярных выражений (ERE), избегайте этих внешних классов символов (таких же, как PCRE):

.^$*+?()[{\|

Выключение любых других символов является ошибкой с POSIX ERE.

Внутри классов символов обратная косая черта является буквальным символом в регулярных выражениях POSIX. Вы не можете использовать его, чтобы избежать чего-либо. Вы должны использовать «умное размещение», если хотите включить метасимволы класса символов в виде литералов. Поместите ^ в любом месте, кроме как в начале, в начале, а в начале или в конце класса символов, чтобы соответствовать этим буквально, например:

[]^-]

В основных регулярных выражениях POSIX (BRE), это метасимволы, которые вам нужно убежать, чтобы подавить их смысл:

.^$*

Выпуски из круглых скобок и фигурных скобок в BRE дают им особый смысл, который их неописуемые версии имеют в ERE. Некоторые реализации (например, GNU) также придают особое значение другим символам при экранировании, например \? и +. Сброс символа, отличного от. ^ $ * () {}, Как правило, является ошибкой с BRE.

Внутри классов символов BRE следуют тому же правилу, что и ERE.

Если все это делает голова спина, возьмите копию RegexBuddy . На вкладке «Создать» нажмите «Вставить маркер», а затем «Литерал». RegexBuddy добавит экраны при необходимости.

11
задан OMG Ponies 12 September 2009 в 21:54
поделиться

3 ответа

Тим,

Я думаю, что в SQL Server 2000, если вы установили ARITHABORT OFF, оптимизатор запросов не будет учитывать индексы индексированных представлений при разработке плана выполнения запроса. Так что, если в лучшем плане используется индекс просмотра, это будет иметь значение. Я не знаю, так ли это до сих пор, но когда вы посмотрите на планы запросов, вы могли бы конкретно посмотреть, упоминает ли более быстрый план индекс представления.

Я не знаю конкретной причины, по которой ARITHABORT должен делать с индексированными представлениями, но параметры SET влияют на ряд вещей, и ситуация с ARITHABORT вряд ли была стабильной. Вы можете проверить по этой ссылке .

Также не исключено, что некоторые из этих действий зависят от уровня совместимости. Если какая-либо из обновленных баз данных была установлена ​​на уровне 80 или 90,

6
ответ дан 2 December 2019 в 21:44
поделиться

Я склонен думать, что настройка ARITHABORT - отвлекающий маневр. Отличаются ли ваши планы запросов в тестовой и производственной системах? ИДЕНТИЧНЫ ли ваши таблицы по содержащимся в них данным и актуальна ли ваша статистика на обоих серверах с одинаковыми индексами? Я бы сначала это проверил.

2
ответ дан 2 December 2019 в 21:44
поделиться

[Это не большой ответ.] Я тоже только что столкнулся с этим, но еще более странно то, что я не могу сейчас воспроизвести ранее плохое спектакль! Даже после установки этого параметра обратно в положение OFF соответствующий SQL теперь работает так же быстро, как и раньше. [Я подозреваю, что кэширование теперь устранило любые различия, связанные с настройками.]

0
ответ дан 2 December 2019 в 21:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: