Знайте, Intuit, лекция, създаване и използване на индекси

концепции за индексиране

Сега, когато имате идея за структурата на индекса, да разгледаме някои от най-често срещаните понятия за индексиране. В този раздел ще научите за клавиша индекс, уникални индекси, както и вида на индексите.

индексни ключове

Тя се нарича ключ колона или колони индекс, които се използват за изграждане на индекса. Индексът на ключ - стойност, която ви позволява бързо да намерите реда, съдържащ необходимите данни (като статия индекс [Index] елемент в книгата, като посочи конкретна тема в текста). За достъп до линиите за данни чрез кода, трябва да включва стойността или стойностите на ключа на индекса да предложи необходимата SQL изявление КЪДЕ. Метод за извършване на този процес зависи от това какъв вид на индекс - прост или съединение.

прости индекси


Фиг. 17.4. прост индекс

композитни индекси


Фиг. 17.5. съставен индекс

За заявки, които включват съставен индекс, не е нужно да се сложи всички клавиши на индекса в SQL израза WHERE присъда, но има смисъл да се използва повече от един ключ. Например, ако индексът е създаден на колони, а, б и в на една маса, достъп до този индекс може да се направи с помощта на SELECT изявлението. експресия, съдържащ (А и В и С), или (а и б), или. Разбира се, използването на по-ограничителни предложения къде. съдържаща, например, експресията на А и В и С. Той ще осигури по-добра производителност. Най-вероятно, базата данни ще бъде прочетено от по-малък брой линии, тъй като линиите ще бъдат посочени по-прецизно. Ако използвате А и Б, или просто. тя ще бъде инициирана от индекс сканиране.

индекс сканиране се случва, защото критерий за търсене съответства на повече от един запис индекс. В сканиране възли индекс сканиране в обхвата на индекса за четене на няколко записа на данни. Освен това, индексът само частично съответства на избраната стойност. Например, ако индексът е създаден на колоните на, В и С, както е посочено в стойността на искане само за колона, която се извежда всички линии, които отговарят на тази стойност за всички стойности колона б и в.

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

Таблица местоположение клиент

Да предположим, че имаме таблица, която съдържа информация за местоположението на вашите корпоративни клиенти. Колонен състояние (държавната), държава (окръг) и град (град), структура, B-дърво в следния ред: държавата, страната, гр. Ако заявката в клаузата за които не е установен Тексас (Тексас) състояние колона, ще се използва индекса. Но тъй като стойността на страната и града колони не са посочени в искането, а след това на индекса ще се върне набор редове въз основа на всички записи на индекса, които съдържат стойността на Тексас в състояние колона. За да прочетете индекса на страница индекс се използва диапазон на сканиране и следващите страници за сканиране на данни въз основа на стойностите на държавния колона. индексни страници се четат последователно по същия начин, както масата за сканиране, за да получите достъп до страниците на данни.

В повечето случаи, сканиране на индекса е достатъчно ефективен; но ако има достъп до повече от 20 на сто от редове в таблицата, толкова по-ефективно е масата за сканиране, в която таблици се чете от всички линии. Ефективността на заявки, които използват индекса зависи от това как се използва индекса (виж. "Използване на индекси" по-долу), както и степента на уникалност на индекса (виж следващия раздел.).

Уникалността на индекса

Можете да определите SQL Server, след като индексът е уникална или не-уникален. В уникален индекс, всяка стойност на клавиша индекс трябва да е уникално. В nonunique индекс позволено ключове дублиране индекс в таблицата с данни. Ефективността зависи от не-уникален индекс на селективност (селективност) на индекса.

Уникална индекс

Уникална индекс съдържа само един ред данни за всеки индекс ключ; с други думи, ключови Стойностите на индексите не могат да присъстват в повече от един индекс време. С помощта на уникален индекс ще гарантира, че търсенето на исканите данни изисква само един допълнителен IO. SQL Server предоставя уникална индекс на колони или комбинация от колони, които съставляват клавиша индекс. SQL Server не позволява навлизането на дублиращи се ключови стойности в база данни. Ако се опитате да направите това, се появява съобщение за грешка. SQL Server създава уникален индекс на масата попита дали първичния ключ ограничение или ограничение уникален. (На първичния ключ ограничения и уникални, виждам. "Създаване и използване на стойности по подразбиране, ограничения и наредби").

можете да направите уникален индекс, само ако самите данни е уникален. Ако данните на колона не разполага с уникален имот, вие все още може да се създаде уникален индекс. Използването на съставен индекс. Така например, колона фамилия а (фамилно име), не може да е уникална, но комбинацията от данни в тази графа колони собствено име (наименование) и бащино име (бащино) могат да образуват уникален индекс на масата.

Забележка. Ако се опитате да вмъкнете ред в таблица, която дава стойността на дубликат на ключа индекс в уникален индекс, вмъкване неуспешна.