Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Firebird Π Π£ΠšΠžΠ’ΠžΠ”Π‘Π’Π’Πž Π ΠΠ—Π ΠΠ‘ΠžΠ’Π§Π˜ΠšΠ БАЗ ДАННЫΠ₯Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 73

Автор Π₯Π΅Π»Π΅Π½ Π‘ΠΎΡ€Ρ€ΠΈ

ΠΠ°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ доступ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… для Π»ΡŽΠ±Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, особСнно Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ зависимости.


! ! !

Π‘ΠžΠ’Π•Π’. Если Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ доступ, Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ всС Ρ€Π°Π²Π½ΠΎ появляСтся, Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ администратора, Π³Π΄Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… сфокусирован Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π²Π°ΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†, Ρ‚ΠΎ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ находится Π² использовании!

. ! .


ΠŸΠΎΡ€Π° дальшС

Firebird ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ индСксы для поддСрТания ссылочной цСлостности. ΠŸΡ€ΠΈ этом индСксы ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ опСрациях поиска ΠΈ упорядочСния, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… для запросов ΠΈ для измСнСния Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ‹ рассмотрим Π² ΠΏΠΎΠ»Π½ΠΎΠΌ объСмС вопросы проСктирования, создания ΠΈ тСстирования индСксов. Π“Π»Π°Π²Π° заканчиваСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ, посвящСнным ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ индСксов с использованиСм Firebird-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ получСния статистики ΠΏΠΎ индСксам gstat.

ГЛАВА 18. Π˜Π½Π΄Π΅ΠΊΡΡ‹.

Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ столбСц ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡƒ столбцов для ускорСния поиска строк.

ИндСкс слуТит логичСским ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° физичСскоС Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ (адрСс) строк Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅; ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π²Ρ‹ примСняСтС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π² ΠΊΠ½ΠΈΠ³Π΅ для быстрого поиска Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² страниц Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв, Ссли сСрвСр ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ строки, сканируя индСкс вмСсто сканирования всСх строк Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅, запросы Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ быстрСС. Π₯ΠΎΡ€ΠΎΡˆΠΎ спроСктированная систСма индСксов ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² настройкС ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ условий эксплуатации Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ

Firebird допускаСт Π΄ΠΎ 256 ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ индСксов Π½Π° ΠΎΠ΄Π½Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² вСрсии 1.5 ΠΈ Π²Ρ‹ΡˆΠ΅, ΠΈ 64 Π² Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… Ρ€Π΅Π»ΠΈΠ·Π°Ρ…. Однако это тСорСтичСскиС ограничСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ скоррСктированы Π·Π° счСт Ρ€Π°Π·ΠΌΠ΅Ρ€Π° страницы ΠΈ фактичСского Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° дискС Π΄Π°Π½Π½Ρ‹Ρ… описания индСкса Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ страницС индСкса. Π’Ρ‹ Π½Π΅ смоТСтС Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ 256 индСксов Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ страницы ΠΌΠ΅Π½Π΅Π΅ 16 ΠšΠ±Π°ΠΉΡ‚. На ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ страницС индСкса ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ индСксу Π½ΡƒΠΆΠ΅Π½ 31 Π±Π°ΠΉΡ‚ для Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, мСсто для описания ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСгмСнта (столбца), Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π² состав индСкса, ΠΈ нСсколько Π±Π°ΠΉΡ‚ΠΎΠ² для хранСния указатСля Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ страницу индСкса. Π”Π°ΠΆΠ΅ страница Π² 16 ΠšΠ±Π°ΠΉΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ способной Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ 256 индСксов, Ссли Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… сущСствуСт Π½Π΅ΠΌΠ°Π»ΠΎ составных индСксов.

Для создания индСксов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΠ±Ρ‰Π°Ρ Π΄Π»ΠΈΠ½Π° индСкса Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 252 Π±Π°ΠΉΡ‚Π°. Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ количСство Π±Π°ΠΉΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСньшС. Π€Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство фактичСских "мСст", доступных для хранСния символов, ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

* ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π½Π°Π±ΠΎΡ€Ρ‹ символов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ нСсколько Π±Π°ΠΉΡ‚ Π½Π° символ;

* ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π½Π°Π±ΠΎΡ€Ρ‹ символов со слоТными ΠΏΠ°Ρ€Π°ΠΌΠΈ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ/Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистры ΠΈ/ΠΈΠ»ΠΈ слоТным словарСм ΠΏΡ€Π°Π²ΠΈΠ» сортировки;

* использованиС Π½Π΅Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… порядков сортировки;

* мноТСство сСгмСнтов (составной индСкс), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… пустых Π±Π°ΠΉΡ‚ΠΎΠ² для сохранСния Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ индСкса.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, использованиС любого Π½Π°Π±ΠΎΡ€Π° символов Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ NONE Π±ΡƒΠ΄Π΅Ρ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ваши Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ индСксов - особСнно Π½Π° использованиС составных индСксов. Π­Ρ‚ΠΎ ΠΏΠ»ΠΎΡ…ΠΈΠ΅ новости. Π₯ΠΎΡ€ΠΎΡˆΠΈΠ΅ новости- Firebird ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ индСксы ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ столбца Π² многостолбцовых поисках ΠΈ сортировках, сокращая ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² многостолбцовых индСксах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π‘Π£Π‘Π”.

АвтоматичСскиС индСксы Π² сравнСнии с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ индСксами

Firebird автоматичСски создаСт индСксы для обСспСчСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ цСлостности (Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ см. Π² Π³Π»Π°Π²Π°Ρ… 16 ΠΈ 17). Для удалСния Ρ‚Π°ΠΊΠΈΡ… индСксов Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ограничСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚.

ИспользованиС индСксов ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π΅ заканчиваСтся ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ ΠΏΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ цСлостности ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ. Они Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ вмСстС со всСми Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ запросов.

ΠŸΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π²Π°ΡˆΠΈΡ… собствСнных индСксов ΠΊΡ€Π°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ созданиС Π»ΡŽΠ±Ρ‹Ρ… индСксов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‚ автоматичСски сгСнСрированныС индСксы. Π­Ρ‚ΠΎ ставит ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ (см. Ρ€Π°Π·Π΄. "ΠŸΠ»Π°Π½Ρ‹ запросов") Π² ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ Π²Ρ‹Π±ΠΎΡ€Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ индСксами. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΎΠ½ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π² Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ.

Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… индСксов

НС ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ "ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Π΅ индСксы" Ρ‚Π°Π±Π»ΠΈΡ† ΠΏΡ€ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π‘Π£Π‘Π”. Π•ΡΡ‚ΡŒ Π΄Π²Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΡ… индСксов.

* МногиС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ систСмы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ иСрархичСскиС структуры индСксов для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ссылочной цСлостности. Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… SQL Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ссылочной цСлостности. Π’Π°ΠΊΠΈΠ΅ индСксы ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Firebird.

* Firebird создаСт свои собствСнныС индСксы для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΈ внСшнСго ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, нСзависимо ΠΎΡ‚ любого ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ индСкса. Как Π±Ρ‹Π»ΠΎ сказано Ρ€Π°Π½Π΅Π΅, Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ индСксов ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ.

НаправлСнныС индСксы

НаправлСниС сортировки индСксов Π² Firebird являСтся Π²Π°ΠΆΠ½Ρ‹ΠΌ. ΠžΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ индСкс ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован для сортировки ΠΈΠ»ΠΈ поиска "Π² ΠΎΠ±ΠΎΠΈΡ… направлСниях" - ΠΎΡ‚ мСньшСго ΠΊ Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ ΠΈ ΠΎΡ‚ большСго ΠΊ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ. Π’ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ индСксы ASC (ASCENDING, Π² Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π΅ΠΌ порядкС) ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π² поискС ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшого количСства Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ индСксы DESC (DESCENDING, Π’ ΡƒΠ±Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ порядкС) Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈ большом количСствС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.


Если автоматичСский индСкс ASC (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), Ρ‚ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ индСкс DESC, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΡ‚ ΠΆΠ΅ столбСц (столбцы). ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π΅Ρ€Π½ΠΎ: Π² Firebird 1.5 ΠΈ Π²Ρ‹ΡˆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ для автоматичСски создаваСмых индСксов ΡƒΠ±Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ порядок. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Π½Π΅ "расстроится", Ссли Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ создадитС Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰ΠΈΠΉ индСкс для Ρ‚Π΅Ρ… ΠΆΠ΅ столбцов.

ΠŸΠ»Π°Π½Ρ‹ запросов

ΠŸΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ запроса ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ - извСстный ΠΊΠ°ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€- Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ столбцы ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ запроса для вычислСн? самого быстрого способа выполнСния. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° начинаСтся с просмотра индСксов Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… столбцов. Работая Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡƒΡ‚Π΅ΠΉ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ свою "ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ"), ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ создаСт ΠΏΠ»Π°Π½ - Π½Π΅ΠΊΠΈΠΉ Π²ΠΈΠ΄ "Π΄ΠΎΡ€ΠΎΠΆΠ½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹" Ρ‚ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ запроса. ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΏΠ»Π°Π½ выбираСтся ΠΏΠΎ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ "самой дСшСвой" Π΄ΠΎΡ€ΠΎΠ³ΠΈ, ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π² соотвСтствии с индСксами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹.

План ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ просмотрСн Π² isql двумя способами.

* По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ isql Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΠ»Π°Π½. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ SET PLAN ON для отобраТСния ΠΏΠ»Π°Π½Π° Π² самом Π½Π°Ρ‡Π°Π»Π΅ Π²Ρ‹Π²ΠΎΠ΄Π° запроса SELECT.

* Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ SET PLANONLY для рассмотрСния запроса ΠΈ просмотра ΠΏΠ»Π°Π½Π° Π±Π΅Π· фактичСского выполнСния запроса. Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½ любого запроса, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ запросов SELECT.

МоТно ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠ»Π°Π½ запроса ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π° вашим собствСнным ΠΏΠ»Π°Π½ΠΎΠΌ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PLAN Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ запроса. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ инструмСнтов графичСского интСрфСйса сторонних Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½, выполняя ΠΈΠ»ΠΈ Π½Π΅ выполняя запрос, ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ.


! ! !

Π‘ΠžΠ’Π•Π’. НС ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΠ»Π°Π½ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π°, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ протСстировали ваш собствСнный ΠΈ Π½Π΅ ΡƒΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ выполняСтся быстрСС Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

. ! .


Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠ»Π°Π½Π°Ρ… запроса см. Π² Ρ€Π°Π·Π΄. "Π’Π΅ΠΌΠ° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ" Π³Π»Π°Π²Ρ‹ 20. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ использования isql см. Π² Π³Π»Π°Π²Π΅ 37.

Как ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ индСксы

Если ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСкс, ΠΎΠ½ отыскиваСт страницы индСкса для поиска Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠ»ΡŽΡ‡Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ для Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… строк Π½Π° страницах Π΄Π°Π½Π½Ρ‹Ρ… этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Поиск Π΄Π°Π½Π½Ρ‹Ρ… выполняСтся быстро, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ значСния индСкса упорядочСны. Π­Ρ‚ΠΎ позволяСт систСмС Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ значСния Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ просмотр Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… строк. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ использованиС индСкса Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ чтСния мСньшСго количСства страниц, Ρ‡Π΅ΠΌ "ΠΏΡ€ΠΎΠ³ΡƒΠ»ΠΊΠ° ΠΏΠΎ" всСм строкам Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. ИндСкс ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ ΠΌΠ°Π» ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ строки Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΈ, Ссли Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ индСкса, Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ мСньшСС количСство страниц Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Π΅ΠΌ строки Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Когда столбцы, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² прСдлоТСниях ORDER BY ΠΈΠ»ΠΈ GROUP BY, ΡΠ²Π»ΡΡŽΡ‚ΡΡ индСксированными, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, просматривая индСксы, ΠΈ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ упорядочиваСмыС Π½Π°Π±ΠΎΡ€Ρ‹ быстрСС, Ρ‡Π΅ΠΌ Π±Π΅Π· использования индСксов.

Π£Π±Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ индСкс для Π³Ρ€ΡƒΠΏΠΏΡ‹ столбцов ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния запросов для Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½ΠΎΠΉ (ΠΎΠ±ΠΎΠ±Ρ‰Π°ΡŽΡ‰Π΅ΠΉ) Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠ°Ρ…(), ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ строки с ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ обращСния. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± использовании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² запросах см. Π² Π³Π»Π°Π²Π°Ρ… 21 ΠΈ 23.