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

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

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

* сущСствуСт Π»ΠΈ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€Π°, ΠΈ Ссли Π΄Π°, сущСствуСт Π»ΠΈ доступный ΠΈΠ»ΠΈ подходящий индСкс;

* Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ выполнСния сортировок, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… (для слияния), Ρ‚Π°ΠΊ ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ (для упорядочСния ΠΈ группирования).


ΠŸΠΎΡ‚ΠΎΠΊΠΈ

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


ИспользованиС индСксов

Π‘Π΅Ρ€Π²Π΅Ρ€ Firebird ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² запросах индСкс для Ρ‚Ρ€Π΅Ρ… Π²ΠΈΠ΄ΠΎΠ² Π·Π°Π΄Π°Ρ‡.

* Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅: выполняСтся сравнСниС Π½Π° условия Ρ€Π°Π²Π½ΠΎ, большС, мСньшС ΠΈΠ»ΠΈ STARTING WITH ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ столбца ΠΈ константой. Если столбСц индСксирован, Ρ‚ΠΎ индСксный ΠΊΠ»ΡŽΡ‡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сокращСния просматриваСмых строк, дСлая Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌ сканированиС всСх строк Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

* БоотвСтствиС ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² для соСдинСний: Ссли доступСн индСкс для столбцов, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² качСствС условия соСдинСния для ΠΏΠΎΡ‚ΠΎΠΊΠ° с ΠΎΠ΄Π½ΠΎΠΉ стороны соСдинСния, Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Ρ‹ΡΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ, Π° Π΅Π³ΠΎ столбцы соСдинСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒΡΡ Π½Π° соотвСтствиС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ индСкса.

* Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: Ссли условия Π² ORDER BY ΠΈΠ»ΠΈ GROUP BY ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ столбСц, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ индСксирован, Ρ‚ΠΎ этот индСкс Π±ΡƒΠ΄Π΅Ρ‚ использован для поиска строк Π² Π½ΡƒΠΆΠ½ΠΎΠΌ порядкС, Π° опСрация сортировки Π½Π΅ потрСбуСтся.


Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²

Когда ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ соСдинСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ индСксированный столбСц, сСрвСр Firebird Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°. Π—Π°Ρ‚Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π»ΠΎΠ³ΠΈΠΊΡƒ И/Π˜Π›Π˜ Π² соотвСтствии с ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅ΠΌ поиска, ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ² строк ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π·, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описываСт всС подходящиС строки. Если запросу Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΊ Π·Π° мноТСство ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠ², сканированиС Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° выполняСтся Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС, Ρ‡Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ просмотр индСксов.


Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС языка

Π’ основС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° SQL Firebird Π»Π΅ΠΆΠΈΡ‚ Π΅Π³ΠΎ Ρ€ΠΎΠ΄Π½ΠΎΠΉ язык Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ прСдставлСния (Binary Language Representation, BLR) ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€, состоящий ΠΈΠ· лСксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°, синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ символов ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π°. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ DSQL ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ прилоТСния ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ BLR ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Ρƒ, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ BLR, Π° Π½Π΅ строки Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€. ΠœΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° SQL ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Π΅ BLR.


! ! !

Π‘ΠžΠ’Π•Π’. Если Π²Π°ΠΌ Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½ΠΎ, Π½Π° Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆ BLR, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнт qli (Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Firebird bin) для просмотра ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ЗапуститС qli ΠΈ Π²Ρ‹Π΄Π°ΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ SET BLR для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ отобраТСния BLR. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠΎ qli Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PDF ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сайтов Firebird, Π² Ρ‚ΠΎΠΌ числС с http://www.ibphoenix.com.

Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ SELECT Π² Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡ… Π² isql, Π²Ρ‹Π΄Π°Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ SET BLOB 2 ΠΈ Π²Ρ‹Π±Ρ€Π°Π² столбСц

RDB$PROCEDURE BLR ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ RDB$PROCEDURES.

. ! .


БоСдинСния бСз индСксов

Если Π½Π΅ сущСствуСт доступного индСкса для условий соСдинСния, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Π·Π°Π΄Π°Π΅Ρ‚ сортированноС слияниС Π΄Π²ΡƒΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ слияниС Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ сортировку ΠΎΠ±ΠΎΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ сканированиС ΠΎΠ±ΠΎΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² для ΠΈΡ… слияния Π² Ρ€Π΅ΠΊΡƒ. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΎΠ±ΠΎΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ постоянного сканирования ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° для поиска соотвСтствия ΠΊΠ»ΡŽΡ‡Π°ΠΌ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°.


Π Π΅ΠΊΠΈ

Π Π΅ΠΊΠΎΠΉ являСтся ΠΏΠΎΡ‚ΠΎΠΊ, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ ΠΏΡ€ΠΈ слиянии Π΄Π²ΡƒΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ соСдинСния. Когда соСдинСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ, Ρ€Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ стратСгии слияния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² Ρ€Π΅ΠΊΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ стоимости. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠ»Π°Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π»ΡƒΡ‡ΡˆΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ для соСдинСния ΠΏΠ°Ρ€ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² порядкС слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ.

ΠŸΡ€ΠΈ вычислСнии стоимости стратСгии соСдинСния ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ опрСдСляСт вСсовыС коэффициСнты для порядка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΊΠΈ. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ опрСдСлСния порядка большС подходят ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ соСдинСниям, Ρ‡Π΅ΠΌ ΠΊ внСшним. ΠŸΠΎΠ»Π½Ρ‹Π΅ соСдинСния Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ особой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

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

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

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


ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠ»Π°Π½ΠΎΠ²

МногиС графичСскиС инструмСнты администратора Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅ΡŽΡ‚ срСдства для просмотра ΠΏΠ»Π°Π½ΠΎΠ² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°. БобствСнная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Firebird isql прСдоставляСт Π΄Π²Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для просмотра ΠΏΠ»Π°Π½ΠΎΠ².


ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΏΠ»Π°Π½ΠΎΠ² Π² isql
SET PLAN

Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ сСссии isql Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SET PLAN Π‘ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ словами ON ΠΈΠ»ΠΈ OFF для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ€Π΅ΠΆΠΈΠΌΠ° отобраТСния ΠΏΠ»Π°Π½Π° Π² Π½Π°Ρ‡Π°Π»Π΅ консольного Π²Ρ‹Π²ΠΎΠ΄Π°:


SQL>SET PLAN;

SQL>SELECT FIRST_NAMES, SURNAME FROM PERSON

CON>ORDER BY SURNAME;


PLAN (PERSON ORDER XA SURNAME)

FIRST NAMES

SURNAME

George Stephanie

Abraham Allen


SET STATS

Π’ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ для isql ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… статистичСских Π΄Π°Π½Π½Ρ‹Ρ… запроса Π² ΠΊΠΎΠ½Ρ†Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈ тСстировании Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… структур запроса ΠΈ Π΅Π³ΠΎ ΠΏΠ»Π°Π½ΠΎΠ²:

SQL>SET STATS ON;

SQL> запускаСтС ваш запрос>


PLAN..

<Π²Ρ‹Π²ΠΎΠ΄>

Current memory = 728316

Delta memory = 61928

Max memory = 773416

Elapsed time =0.17 sec

Buffers = 2048

Reads = 15

Writes = 0

Fetches = 539


SET PLANONLY

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ SET PLANONLY [ON | OFF] ΠΏΠΎΠ΄Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΠ»Π°Π½ Π±Π΅Π· выполнСния запроса:


SQL>SET PLAN OFF;

SQL>SET PLANONLY ON;

SQL>SELECT FIRST_NAMES, SURNAME FROM PERSON

CON>ORDER BY SURNAME;


PLAN (PERSON ORDER XA_SURNAME)


Если Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Π² качСствС стартовой Ρ‚ΠΎΡ‡ΠΊΠΈ для конструирования ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ прСдлоТСния PLAN, Ρ‚ΠΎ ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ синтаксис Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ выраТСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΌΡƒ синтаксису для выраТСния ΠΏΠ»Π°Π½Π° Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅[80]. НСудобным являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² isql Π½Π΅ сущСствуСт возмоТности Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π½ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Π² тСкстовый Ρ„Π°ΠΉΠ».


! ! !

Π‘ΠžΠ’Π•Π’. ГрафичСскиС инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ ΠΏΠ»Π°Π½Ρ‹, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ срСдства копирования/вставки.

. ! .


Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ сами ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… employee.fdb, ΠΈΠ½ΡΡ‚Π°Π»Π»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π² ваш ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²[81].


ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ запрос

Π­Ρ‚ΠΎΡ‚ запрос просто отыскиваСт всС строки ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ соотвСтствия Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ порядкС. Π₯отя ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ опрСдСляСт Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ индСкса (индСкс ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°), ΠΎΠ½ Π΅Π³ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для поиска:


SQL>SET PLANONLY ON;

SQL> SELECT * FROM COUNTRY;

PLAN (COUNTRY NATURAL)


УпорядочСнный запрос

Π­Ρ‚ΠΎ всС Π΅Ρ‰Π΅ простой запрос Π±Π΅Π· соСдинСний:

SQL>SELECT * FROM COUNTRY ORDER BY COUNTRY;

PLAN (COUNTRY ORDER RDB$PRIMARYl)


ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ индСкс ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ упорядочСниС; ΠΏΡ€ΠΈ этом Π½Π΅ трСбуСтся созданиС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° для сортировки.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠΌ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый запрос ΠΏΠΎ нСиндСксированному столбцу:


SELECT * FROM COUNTRY ORDER BY CURRENCY;

PLAN SORT ((COUNTRY NATURAL))


ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ сортировки, просматривая Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ COUNTRY Π’ СстСствСнном порядкС.


ΠŸΠ΅Ρ€Π΅ΠΊΡ€Π΅ΡΡ‚Π½ΠΎΠ΅ соСдинСниС

ΠŸΠ΅Ρ€Π΅ΠΊΡ€Π΅ΡΡ‚Π½ΠΎΠ΅ соСдинСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ создаСт бСсполСзный Π½Π°Π±ΠΎΡ€, вовсС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² соСдинСния:


SQL> SELECT Π•.*, P.* FROM EMPLOYEE Π•, PROJECT Π ;


PLAN JOIN (Π  NATURAL,Π• NATURAL)


Оно просто сливаСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π² Π»Π΅Π²ΠΎΠΉ части с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ части. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ индСксы. Однако этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π² качСствС ввСдСния Π² соСдинСниС ΠΌΠ΅ΠΆΠ΄Ρƒ алиасами Π΄Π²ΡƒΡ… Ρ‚Π°Π±Π»ΠΈΡ† Π² спСцификации соСдинСния ΠΈ ΠΈΡ… использовании Π² ΠΏΠ»Π°Π½Π΅.