Опции за база данни на SQL Server 2005

Опции за база данни на SQL Server 2005, ALLOW_SNAPSHOT_ISOLATION, ANSI_NULL_DEFAULT, ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, AUTO_CLOSE, AUTO_CREATE_STATISTICS, AUTO_UPDATE_STATISTICS, AUTO

В допълнение към режима за възстановяване и режимите на работа, базите данни на SQL Server 2005 имат много други важни свойства. Тези свойства могат да бъдат конфигурирани с помощта на GUI в раздела Настроики свойства на базата данни в SQL Server Management Studio (не всички опции ще бъдат налични) или с помощта на командата ALTER DATABASE. В този случай имената на параметрите и техните стойности в графичния интерфейс и в синтаксиса на командата ALTER DATABASE изглеждат по различен начин. Например в раздела Настроики за параметър ANSI НУЛИ Активирано предоставят се стойностите T RUE и F ALSE. Когато се използва командата ALTER DATABASE, същият параметър се нарича ANSI_NULLS и използва стойности O N и O FF .

Следва информация за всички опции на базата данни, които не са били обхванати в предишните два раздела. Имената на параметрите на базата данни и техните стойности са дадени "във формата" на командата ALTER DATABASE .

q ALLOW_SNAPSHOT_ISOLATION - Определя дали новият режим на изолиране на транзакции за моментна снимка може да се използва с тази база данни. По подразбиране този параметър е зададен на OFF. .

q ANSI_NULL_DEFAULT - Определя дали по подразбиране колоните в създадените таблици на тази база данни ще могат да бъдат занулявани. Стойността по подразбиране за този параметър е OFF (т.е. не е разрешена), което нарушава стандарта ANSI. Тази настройка може да се променя на сесия. Всички OLE DB и ODBC връзки по подразбиране задават стойността на ниво сесия на ON .

q ANSI_NULLS - ако активирате този параметър, тогава всяко сравнение на стойности, поне една от които е NULL, ще върне NULL. Това поведение е предписано от стандарта ANSI. Ако този параметър е зададен на OFF (по подразбиране), тогава SQL Server ще върне TRUE при сравняване на две NULL стойности. Този параметър се изисква да бъде включен при създаване или модифициране на индексирани изгледи или индекси в изчислените колони. Всички OLE DB и ODBC връзки също задават стойността на ниво сесия на ON по подразбиране .

q ANSI_PADDING - Определя дали символите за празно пространство (например интервали) се запазват при вмъкване на стойности varchar и nvarchar в колони (ON е предписано от стандарта ANSI). По подразбиране SQL Server е зададен на OFF. Подобно на предишния параметър, този параметър е упълномощен да бъде включен при създаване или промяна на индексирани изгледи или индекси на изчислени колони и е зададен по подразбиране на всички OLE DB и ODBC връзки на ниво сесия. Документацията на Microsoft обикновено препоръчва тази опция винаги да бъде ВКЛЮЧЕНА (по подразбиране, както вече беше казано, е ИЗКЛЮЧЕНО).

q ANSI_ ПРЕДУПРЕЖДЕНИЯ - този параметър определя дали предупредителните съобщения ще бъдат генерирани, ако обобщената функция е поискана да се раздели на нула или да работи със стойност NULL. Що се отнася до стойностите, важи същото като за предишния параметър: стойността ON се препоръчва от стандарта ANSI, по подразбиране се задава на ниво сесия с OLE DB и ODBC връзки, необходимо е да се работи с индексирани изгледи и индекси за изчислени колони. Но базите данни на SQL Server 2005 са настроени на OFF по подразбиране .

q АРИТАБОРТ - ако този параметър е зададен на ON, аритметичната грешка (преливане на променлива или разделяне с нула) ще спре партидата или ще върне транзакцията, в която е възникнала. Ако този параметър е зададен на OFF (по подразбиране в SQL Server), тогава всичко ще бъде ограничено до предупредително съобщение и партидата/транзакцията ще продължи. За да работите с индексирани изгледи и индекси върху изчислени колони, този параметър трябва да бъде зададен на ВКЛ .

q AUTO_CREATE_STATISTICS и AUTO_UPDATE_STATISTICS - Ако тези опции са разрешени (по подразбиране), тогава SQL Server 2005 автоматично генерира и актуализира статистически данни за колоните на таблиците в тази база данни. Статистиката е специална информация за разпределението на данните в колони на таблици, която се използва от оптимизатора на заявките. Представете си например, че изпълнявате молба, която иска да върнете всички Иванови, живеещи в град Санкт Петербург. Да приемем, че 90% от записите в тази таблица имат същата стойност в колоната "Град" - Санкт Петербург. Разбира се, от гледна точка на изпълнението на заявката, в началото е по-изгодно да изберете всички Иванови в таблицата (очевидно няма да има 90% от тях), а след това да проверите стойността на колоната "Град" за всеки избран запис. За да разберете обаче как се разпределят стойностите в колона, първо трябва да изпълните заявка. Следователно SQL Server независимо инициира изпълнението на такива заявки и след това съхранява информация за разпределението на данни (такава информация се нарича статистика) в сервизните таблици на базата данни.

Изискват се статистически данни, в противен случай оптимизаторът няма да може да създаде правилни планове за изпълнение на заявките. Има смисъл да деактивирате опциите AUTO_CREATE_STATISTICS и AUTO_UPDATE_STATISTICS само когато вашата база данни е много голяма и се страхувате, че активността, генерираща статистика, може да забави потребителското изживяване. В този случай можете да актуализирате статистиката ръчно, например извън работното време.