Ако често търсите в таблица в Access или сортирате нейните записи по конкретно поле, можете да ускорите тези операции чрез създаване на индекс за полето. Access използва индексите в таблица така, както вие използвате индекс в книга – за да намери данни, Access търси местоположението на данните в индекса. В някои случаи, например за първичен ключ, Access автоматично създава индекс. В други случаи може вие да поискате да създадете индекс.
Тази статия ви въвежда в индексите и обяснява как да решите кои полета да индексирате и как да създавате, изтривате или променяте индекси. Тя обяснява също условията, при които Access създава индекси автоматично.
В тази статия
Забележка: Не можете да използвате методите, описани в тази статия, за да създадете индекс за таблица в уеб база данни. Производителността на уеб база данни зависи от производителността на няколко фактора, като например сървъра на SharePoint, който хоства уеб базата данни.
Какво е индекс?
Можете да използвате индекс, за да помогнете на Access да намира и сортира записите по-бързо. Индексът съхранява местоположението на записите въз основа на полето или полетата, които сте избрали да индексирате. След като Access получи местоположението от индекса, той може да извлече данните, като отиде директно в правилното местоположение. По този начин използването на индекс може да бъде значително по-бързо от сканирането на всички записи, за да бъдат намерени данните.
Как да решите кои полета да индексирате
Можете да създадете индекси, които се базират на единично поле или на няколко полета. Вероятно ще искате да индексираните полетата, които търсите често, полетата, които сортирате, и полетата, които присъединявате към полета в други таблици в заявки за няколко таблици. Индексите могат да ускорят търсенията и заявките, но могат да забавят работата, когато добавяте или актуализирате данни. Когато въвеждате данни в таблица, която съдържа едно или повече индексирани полета, Access трябва да актуализира индексите при всяко добавяне или промяна на запис. Добавянето на записи чрез използване на заявка за добавяне или чрез добавяне на импортирани записи също има вероятност да бъде по-бавно, ако таблицата местоназначение съдържа индекси.
Забележка: Първичният ключ на таблица се индексира автоматично.
Не може да индексирате поле, чийто тип данни е "OLE обект", "Изчисляемо поле" или "Прикачен файл". За другите полета обмислете индексирането, ако са изпълнени всички изброени по-долу изисквания:
-
Типът данни на полето е "Кратък текст", "Дълъг текст", "Число", "Дата/час", "Автономериране", "Валута", "Да/не" или "Хипервръзка".
-
Очаквате търсене на стойности, записани в полето.
-
Очаквате сортиране на стойностите в полето.
-
Очаквате съхраняване на много различни стойности в полето. Ако много от стойностите в полето са едни и същи, индексирането може да не ускори значително заявките.
Индекси от няколко полета
Ако смятате, че често ще търсите или сортирате по две или повече полета едновременно, можете да създадете индекс за тази комбинация от полета. Ако например често задавате критерии за полетата "Доставчик" и "Име на продукт" в една и съща заявка, има смисъл да създадете индекс, съставен от двете полета.
Когато сортирате таблица по индекс от няколко полета, Access сортира първо по първото поле от дефиницията на индекса. Вие задавате реда на полетата, когато създавате индекса от няколко полета. Ако има записи с дублирани стойности в първото поле, Access сортира след това по второто поле, дефинирано за индекса, и т.н.
Можете да включите до 10 полета в индекс от няколко полета.
Създаване на индекс
За да създадете индекс, трябва първо да решите дали искате да създадете индекс от едно, или от няколко полета. Индекс от единично поле се създава чрез задаване на свойството Индексирано. Следващата таблица съдържа възможните настройки за свойството Индексирано.
Настройка на свойството "Индексирано" |
Значение |
---|---|
Не |
Не създавай индекс за това поле (или изтрий съществуващия индекс) |
Да (дублира OK) |
Създай индекс за това поле |
Да (без дублиране) |
Създай уникален индекс за това поле |
Ако създадете уникален индекс, Access не ви разрешава да въведете нова стойност в полето, ако тази стойност вече съществува в друг запис в същото поле. Access автоматично създава уникален индекс за първичните ключове, но вие можете също да искате да забраните дублирани стойности в други полета. Можете например да създадете уникален индекс за поле, което съхранява серийни номера, така че никои два продукта да нямат един и същ сериен номер.
Създаване на индекс от единично поле
-
В навигационния екран щракнете с десния бутон върху името на таблицата, за която искате да създадете индекс, след което в контекстното меню щракнете върху Режим на проектиране.
-
Щракнете върху Име на полето за полето, което искате да индексирате.
-
Под Свойства на полето изберете раздела Общи.
-
В свойството Индексирано щракнете върху Да (дублира OK), ако искате да разрешите дублирането, или Да (без дублиране), за да създадете уникален индекс.
-
За да запишете промените, щракнете върху Запиши в Лента с инструменти за бърз достъп или натиснете CTRL+S.
Създаване на индекс от няколко полета
За да създадете индекс от няколко полета за една таблица, трябва да включите един ред за всяко поле в индекса и да включите името на индекса само в първия ред. Access третира всички редове като част от един и същ индекс, докато не стигне до ред, съдържащ друго име на индекс. За да вмъкнете ред, щракнете с десния бутон върху местоположението, където искате да вмъкнете реда, и след това щракнете върху Вмъкване на редове в контекстното меню.
-
В навигационния екран щракнете с десния бутон върху името на таблицата, за която искате да създадете индекс, след което в контекстното меню щракнете върху Режим на проектиране.
-
В раздела Проектиране, в групата Покажи/скрий щракнете върху Индекси.
Показва се прозорецът "Индекси". Преоразмерете прозореца, така че да се покажат няколко празни реда и свойствата на индекса.
-
В колоната Име на индекс, в първия празен ред, въведете име за индекса. Можете да именувате индекса като едно от индексираните полета или да използвате друго име.
-
В колоната Име на полето щракнете върху стрелката и след това щракнете върху първото поле, което искате да използвате за индекса.
-
В следващия ред оставете колоната Име на индекс празна и след това в колоната Име на полето щракнете върху второто поле за индекса. Повтаряйте тази стъпка, докато не изберете всички полета, които искате да включите в индекса.
-
За да промените реда на сортиране на стойностите на полето, в колоната Ред на сортиране от прозореца "Индекси" щракнете върху Възходящо или Низходящо. По подразбиране редът на сортиране е възходящ.
-
В прозореца Индекси, под Свойства на индекс задайте свойствата на индекса за реда в колоната Име на индекс, съдържащ името на индекса. Задайте свойствата съгласно следващата таблица.
Етикет
Стойност
Първичен
Ако е Да, индексът е първичен ключ.
Уникални
Ако е Да, всяка стойност в индекса трябва да бъде уникална.
Игнорирай празните полета
Ако е Да, записите със стойност Null в индексираните полета се изключват от индекса.
-
За да запишете промените, щракнете върху Запиши в Лента с инструменти за бърз достъп или натиснете CTRL+S.
-
Затворете прозореца "Индекси".
Изтриване на индекс
Ако откриете, че някой индекс е станал ненужен или че има твърде голямо отражение върху техническите показатели, можете да го изтриете. Когато изтриете един индекс, премахвате само индекса, а не полето или полетата, върху които е съставен.
-
В навигационния екран щракнете с десния бутон върху името на таблицата, за която искате да изтриете индекс, след което в контекстното меню щракнете върху Режим на проектиране.
-
В раздела Проектиране, в групата Покажи/скрий щракнете върху Индекси.
Показва се прозорецът "Индекси". Преоразмерете прозореца, така че да се покажат няколко празни реда и свойствата на индекса.
-
В прозореца за индекси изберете реда или редовете, които съдържат индекса, който искате да изтриете, и след това натиснете DELETE.
-
За да запишете промените, щракнете върху Запиши в Лента с инструменти за бърз достъп или натиснете CTRL+S.
-
Затворете прозореца Индекси.
Показване и редактиране на индекси
Може да искате да виждате индексите за някоя таблица, за да прецените тяхното отражение върху техническите показатели, или за да сте сигурни, че определени полета са индексирани.
-
В навигационния екран щракнете с десния бутон върху името на таблицата, за която искате да редактирате индекса, след което в контекстното меню щракнете върху Режим на проектиране.
-
В раздела Проектиране, в групата Покажи/скрий щракнете върху Индекси.
Показва се прозорецът "Индекси". Преоразмерете прозореца, така че да се покажат няколко празни реда и свойствата на индекса.
-
Покажете или редактирайте индексите и свойствата на индексите според вашите изисквания.
-
За да запишете промените, щракнете върху Запиши в Лента с инструменти за бърз достъп или натиснете CTRL+S.
-
Затворете прозореца Индекси.
Автоматично създаване на индекси
В някои случаи Access създава автоматично индекси вместо вас. Например индекс се създава автоматично за всяко поле или полета, които вие посочите като първичен ключ.
Друг източник на създаване на автоматичен индекс е опцията Автоиндексиране при импортиране/създаване в диалоговия прозорец Опции на Access. Access автоматично индексира всички полета с имена, които започват или завършват със знаците, въведени в полето Автоиндексиране при импортиране/създаване, например ИД, ключ, код или номер. За да видите или промените текущата настройка, изпълнете следните стъпки:
-
Щракнете върху Файл > Опции.
-
Щракнете върху Конструктори на обекти и след това под Изглед на структура на таблица добавете, редактирайте или премахнете стойностите в полето Автоиндексиране при импортиране/създаване. За отделяне на стойностите използвайте точка и запетая (;).
Забележка: Ако някое име на поле започва или завършва със стойност, съдържаща се в полето, полето се индексира автоматично.
-
Щракнете върху OK.
Тъй като всеки допълнителен индекс изисква от Access допълнителна работа, техническите показатели се влошават, когато добавяте или актуализирате данни. Следователно може да поискате да промените стойностите, показани в полето Автоиндексиране при импортиране/създаване, или да намалите броя на стойностите, за да намалите броя на създадените индекси.