Основни концепции на SQL Server за Windows администратори, Windows IT Pro

За тези, които управляват SQL сървър, но не правят разлика между таблица и индекс

windows

Началото на времето

Първата стъпка при настройването на система с SQL Server е да се разпредели необходимото количество памет. Системите с бази данни изискват много памет и SQL Server не прави изключение. За системи, обслужващи отдели в една организация, абсолютното минимално изискване за памет е 512 MB. По-големите системи изискват съответно повече памет. Имайки предвид днешните цени на RAM, можете свободно да добавите 1 или 2 GB към система с SQL Server за сравнително малко пари. Инвестицията в допълнителна памет ще реши проблемите с производителността, които могат да бъдат измерени по отношение на намаленото време за разрешаване на проблеми и продуктивността на крайния потребител.

Разработчиците на Microsoft направиха SQL Server 2000 лесен за инсталиране и стартиране. Въпреки това не препоръчвам да изберете най-лесния начин - настройките по подразбиране. Например, ако изберете настройките по подразбиране по време на инсталирането на единичен екземпляр на SQL Server, в крайна сметка ще имате система, която работи по-малко от оптималното. По подразбиране програмата за настройка на SQL Server създава файловете на базата данни и регистрационните файлове на едно и също устройство. За да подобрите производителността на SQL Server, е по-добре да поставите тези файлове на различни дискове. По този начин първото нещо, което трябва да направите по време на инсталацията, е да се уверите, че SQL Server има достатъчно дискове. Най-малкото трябва да имате три диска. Един за операционната система, един за файловете с данни и един за регистрационния файл. На фиг. 1 показва типична дискова конфигурация за малки до средни SQL инсталации.сървър. Този пример показва система с осем устройства. Тук операционната система, файловете с данни и регистрационните файлове се намират на отделни дискове. Операционната система и регистрационните файлове използват дублиране, за да осигурят толерантност към грешки. Файловете с данни използват RAID 5 striping за ефективност на съхранението. За максимална защита на данните, вместо RAID 5, можете да използвате RAID 1 за устройства с данни. Това решение обаче е значително по-скъпо от RAID 5, тъй като дублирането изисква два пъти повече дисково пространство от количеството съхранявани данни. SCSI устройствата превъзхождат IDE устройствата по отношение на производителност и скорост, така че използването на такива устройства има положителен ефект върху производителността на цялата система.

windows

За по-добро възстановяване на системата, регистрационните файлове трябва да бъдат огледални. Популярна конфигурация за инсталиране на SQL Server е RAID 1 за дискови томове, съдържащи лог файлове и RAID 5 за томове, съдържащи файлове с данни. Може да искате да имате друго вторично устройство, на което да извършвате проследяване и друга диагностика. И накрая, от съображения за сигурност и производителност е най-добре да инсталирате SQL Server на специален сървър, а не на домейн контролер.

Основи на SQL Server

Може да откриете, че процесът на управление на SQL Server 2000 не е толкова труден, след като разберете как работи продуктът. Веднъж инсталиран SQL Server, съдържа четири системни бази данни (master, model, msdb и tempdb) и две потребителски бази данни. Основната база данни е може би най-важната от системните бази данни. Той включва таблици, които описват всички други бази данни в системата и съдържат информация заакаунти и настройки за сигурност. Базата на модела съдържа шаблони за всички нови бази. Всички бази данни, създадени на сървъра, наследяват всички настройки от моделната база данни. Базата данни msdb се използва от SQL Server Agent за съхраняване на информация за планиране на задачи. Той също така съхранява информация за архивиране и репликации. Базата данни tempdb съхранява временни работни таблици. Обектите в базата данни tempdb присъстват, докато потребителят, който ги е създал, е влязъл в системата.

Ако отговорността на администратора е само да управлява SQL Server, а не да създава нови бази данни, тогава няма особена нужда да навлизаме в подробности за създаването на обекти на база данни. Те обикновено се формират от разработчици в ИТ отдела или доставчици на приложения. Въпреки това, основните понятия относно обектите на машината на базата данни, базите данни, таблиците, индексите, изгледите, съхранените процедури и тригерите могат да ви помогнат да разрешите проблеми, които възникват.

Бази данни.Базите данни съдържат информация, която приложенията използват. Базата на SQL Server включва набор от таблици, изгледи, индекси и съхранени процедури. Всяко от приложенията обикновено е проектирано по такъв начин, че да се свързва с основата си. Специализираният SQL сървър може да поддържа множество бази данни (32 767 бази данни на сървър). Базата данни на SQL Server може да нарасне до много големи размери. Максималният размер на базата данни е 1 048 516 TB. Всяка база данни трябва да се състои от поне два файла - файл с данни и лог файл. Файлът с данни съдържа таблици, редове и колони с информация. Регистрационният файл съдържа всички транзакционни операции (INSERT, UPDATE, DELETE), извършени от потребители или приложения, докато работят с базата данни. Както вече споменахме, за да гарантирате оптимална производителност, никога не трябва да поставятеданни и регистрационни файлове на същия диск на работеща система. По същия начин не се препоръчва да поставяте данни и регистрационни файлове на компресирани или криптирани дискове.

По време на създаването на база данни SQL Server използва копие на модела на база данни като шаблон за новата база данни. Можете да зададете максималното количество, до което базата данни може да нарасне в мегабайти или проценти от нейния размер. За повечето настройки е най-добре да изберете режим на автоматично нарастване, който позволява на основата да расте автоматично според нуждите. Ако администраторът е добре запознат с характеристиките на съществуващите приложения, тогава той трябва приблизително да представи очаквания растеж и размер на базата данни. По този начин можете да избегнете автоматичното разширяване на базата данни по време на активното й използване, което може да повлияе неблагоприятно на производителността на цялата система.

Индекси.Основната причина за използването на индекси е да се ускори изпълнението на заявката. Индексите са една от избраните колони в таблицата. SQL Server използва два типа индекси: групирани и неклъстерирани. Клъстърираният индекс определя реда на данните в таблица. Когато се използва клъстериран индекс, SQL Server подрежда редовете в базовата таблица според реда, определен от клъстерираните индекси. Всяка таблица може да има само един клъстерен индекс. Неклъстерираните индекси не променят реда на редовете на основната таблица, те просто предоставят алтернативен, оптимизиран начин за достъп до данните.

Можете да премахвате или добавяте индекси, без да се намесвате в цялостната архитектура на базата данни. Въпреки че основната цел на използването на индекс е да се ускори достъпът до данни, използването на твърде много индекси може да има обратен ефект. След като се създаде индекс, SQL Server трябва да го поддържа (т.е.поддържайте актуални), тъй като данните се добавят към таблиците на базата данни. Процесът, който изпълнява SQL Server, трябва не само да добавя данни към таблицата, но и да актуализира съществуващите индекси едновременно с новите данни. Естествено, колкото повече индекси създадете, толкова повече време ще отнеме да ги актуализирате. Прекалено големият брой индекси може да повлияе неблагоприятно на производителността на цялата система. Една често срещана техника, която може да подобри производителността на пакетните задания, е следната. Първо се пише скрипт, който премахва всички индекси, преди да стартира заданието. След това се пише друг скрипт, който ще възстанови индексите в края на процедурата. SQL Server 2000 включва съветник за настройка на индекси, който анализира заявки и предлага индекси, които могат да подобрят производителността на тези заявки.

Изгледи.Изгледът е като виртуална таблица или съхранена заявка. Данните, достъпни чрез този изглед, не се съхраняват като отделен обект на база данни. Вместо това потребителят създава изглед с помощта на командата SQL SELECT. Когато се стартира съответният изглед, потребителят вижда резултатите от функцията SELECT. Изгледът обикновено се използва за ограничаване на потребителския достъп до конкретни колони или редове в една или повече таблици.

Запомнени процедури и тригери.Запазените процедури се създават с помощта на T-SQL код. Съхранените процедури са гръбнакът на повечето приложения за бази данни. Тригерът е специален тип съхранена процедура, която може да бъде прикрепена към таблица. Тъй като съхранените процедури се компилират, те осигуряват най-добра производителност в сравнение с динамично изпълняваните.SQL процедури (SQL кодът, който програмата генерира преди да изпълни SQL командата). Когато на сървъра се изпълнява динамичен SQL код, процесът, който контролира работата на SQL Server, първо анализира и валидира командата, като по този начин гарантира, че няма синтактични грешки. След това се създава план, според който ще се осъществява достъп до данните. Съхранените процедури ви позволяват да извършвате тази работа на етапа на създаване на тази съхранена процедура, а не динамично, докато приложението работи. Това дава на съхранените процедури значително предимство в производителността пред динамично изпълняващия SQL код, докато приложението работи. SQL Server има функция за кеширане на заявки. Може да кешира отделни части от динамичен SQL код за определен период от време. Кеширането обаче не дава гаранция, че необходимият динамичен код все още ще бъде в кеша при следващото му използване.

Подобно на съхранените процедури, T-SQL кодът също се използва за създаване на тригери. За разлика от съхранените процедури, които могат да бъдат изпълнени от всеки с необходимите права за тази съхранена процедура, тригерите се задействат изключително от самата база данни. Те са свързани с таблици с помощта на процедурата CREATE TRIGGER. В допълнение, те се задействат, когато се извършват определени действия върху таблицата, като INSERT, UPDATE или DELETE. DBA обикновено използват тригери за налагане на референтна цялост. Имате способността да извършвате последователни DELETE на таблици, посочени от редове в референтната таблица. Тригерният код се изпълнява само след проверки на целостта на SQL Server, включително проверки на референтната цялост.

Сега е моментът да спрете и да си направите малко равносметка. Сега титрябва да знае критериите, по които се избира необходимото количество RAM и как най-добре да се създаде дискова подсистема на SQL Server. Също така трябва да разберете предназначението на основните компоненти на SQL Server. Във втората част на статията ще разгледам по-отблизо вътрешността на SQL Server, за да улесня работата ви на непълен работен ден като DBA.

Споделяйте материал с колеги и приятели