Π Π°Π±ΠΎΡ‚Π° с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ… Π² систСмС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π±Π΅Π· Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠ³ΠΎ использования языка запросов. Π‘Ρ€Π΅Π΄ΠΈ всСх конструкций, Π²Π»ΠΈΡΡŽΡ‰ΠΈΡ… Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ ΠΈΠ³Ρ€Π°Π΅Ρ‚ сСкция Π“Π”Π•. ИмСнно здСсь Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ опрСдСляСт Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ записСй ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ составлСниС условий Π² этой сСкции ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‚Π°Π±Π»ΠΈΡ†, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ сущСствСнноС Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ всСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π‘Π£Π‘Π” ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ эти условия, являСтся критичСски Π²Π°ΠΆΠ½Ρ‹ΠΌ Π½Π°Π²Ρ‹ΠΊΠΎΠΌ для любого спСциалиста ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² 1Π‘.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру, особСнности ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ индСксов ΠΈ распространСнныС ошибки ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ условий ΠΎΡ‚Π±ΠΎΡ€Π°. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ быстро Π΄Π°ΠΆΠ΅ Π½Π° ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°Ρ… записСй.

БинтаксичСская структура ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ условия

БСкция Π“Π”Π• всСгда располагаСтся послС сСкции Π˜Π— ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ сСкциСй Π‘Π“Π Π£ΠŸΠŸΠ˜Π ΠžΠ’ΠΠ’Π¬ ПО. Она ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ строк Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…. БинтаксичСски ΠΎΠ½Π° прСдставляСт собой логичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π΅ Π±ΡƒΠ»Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Условия ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ простыми, сравнСниями ΠΈΠ»ΠΈ составными. ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ условия часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° равСнство ΠΈΠ»ΠΈ сущСствованиС значСния. НапримСр, Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρƒ.

Для составных условий ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ И, Π˜Π›Π˜ ΠΈ НЕ. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ строго Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½: сначала выполняСтся НЕ, Π·Π°Ρ‚Π΅ΠΌ И, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΠΎΠ½Ρ†Π΅ Π˜Π›Π˜. Для измСнСния ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ слоТного условия, Π³Π΄Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°ΡΡΡ‚Π°Π²ΠΈΡ‚ΡŒ скобки для получСния ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΏΠΎ статусам ΠΈ Π΄Π°Ρ‚Π°ΠΌ:

ВЫБРАВЬ

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.Бсылка КАК Бсылка,

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.Π”Π°Ρ‚Π° КАК Π”Π°Ρ‚Π°,

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ КАК ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½

Π˜Π—

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.РСализацияВоваровУслуг КАК Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹

Π“Π”Π•

(Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ = ИБВИНА Π˜Π›Π˜ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ°Π£Π΄Π°Π»Π΅Π½ΠΈΡ = Π›ΠžΠ–Π¬)

И Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.Π”Π°Ρ‚Π° ΠœΠ•Π–Π”Π£ &ΠΠ°Ρ‡Π°Π»ΠΎΠŸΠ΅Ρ€ΠΈΠΎΠ΄Π° И &ΠšΠΎΠ½Π΅Ρ†ΠŸΠ΅Ρ€ΠΈΠΎΠ΄Π°

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ использованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…ΡΡ с ампСрсанда &) являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ стандартом. Π­Ρ‚ΠΎ позволяСт ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запрос Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ структуры ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π½Π΅ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

πŸ’‘

ИспользованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запроса (&ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€) вмСсто подстановки Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ строк ускоряСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π·Π° счСт ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ»Π°Π½ΠΎΠ² выполнСния запроса Π‘Π£Π‘Π”.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈ использованиС индСксов

Главная Ρ†Π΅Π»ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΡ€ΠΈ написании условия Π² сСкции Π“Π”Π• β€” Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π‘Π£Π‘Π” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ индСксы. Если индСкс Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, систСма Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Π° ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ запись Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Ρ‡Ρ‚ΠΎ называСтся ΠΏΠΎΠ»Π½Ρ‹ΠΌ сканированиСм.

БущСствуСт понятиС "составного индСкса". Если Π² вашСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ создан индСкс ΠΏΠΎ полям ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ ΠΈ Π”Π°Ρ‚Π°, Ρ‚ΠΎ условиС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ с поля ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚. ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ порядка ΠΏΠΎΠ»Π΅ΠΉ Π² условии ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ индСкса.

Однако соврСмСнныС вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8 ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ Π‘Π£Π‘Π” (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, PostgreSQL ΠΈΠ»ΠΈ MS SQL Server) стали ΡƒΠΌΠ½Π΅Π΅. Они ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ условия для использования индСкса Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΈ порядка, Π½ΠΎ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° это Π½Π΅ стоит.

  • πŸš€ ВсСгда провСряйтС ΠΏΠ»Π°Π½ выполнСния запроса Ρ‡Π΅Ρ€Π΅Π· консоль запросов ΠΈΠ»ΠΈ инструмСнты администратора Π‘Π£Π‘Π”.
  • πŸ“‰ Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊ полям Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Π»Π΅Π²ΠΎΠΉ части условия сравнСния.
  • πŸ” Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ значСния ΠΈΠ»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ вмСсто ΠΎΠ±Ρ‰ΠΈΡ… условий, ΠΊΠΎΠ³Π΄Π° это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠΉ ошибкой считаСтся ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊ полям Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ нСпосрСдствСнно Π² условии. НапримСр, конструкция Π“ΠžΠ”(Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.Π”Π°Ρ‚Π°) = 2026 Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ использованиС индСкса ΠΏΠΎ полю Π”Π°Ρ‚Π°. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π΄Π°Ρ‚:

Π“Π”Π•

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.Π”Π°Ρ‚Π° >= ΠΠΠ§ΠΠ›ΠžΠ“ΠžΠ”Π(&Π”Π°Ρ‚Π°)

И Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.Π”Π°Ρ‚Π° < ΠšΠžΠΠ•Π¦Π“ΠžΠ”Π(&Π”Π°Ρ‚Π°)

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

πŸ“Š Какая Π‘Π£Π‘Π” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² вашСй основной Π±Π°Π·Π΅ 1Π‘?
MS SQL Server
PostgreSQL
Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚
Oracle

Π Π°Π±ΠΎΡ‚Π° с Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ значСниями (NULL)

Π’ языкС запросов 1Π‘ сущСствуСт спСцифичСскоС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с пустыми значСниями. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ стандартного SQL, Π³Π΄Π΅ NULL Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° IS NULL, Π² 1Π‘ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π•Π‘Π’Π¬ NULL.

Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ², Π³Π΄Π΅ отсутствиС значСния Π² ΠΏΠΎΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠΌΡ‹ΡΠ»ΠΎΠ²ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ. НапримСр, Ссли ΠΏΠΎΠ»Π΅ "ΠžΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ" Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡Π° Π΅Ρ‰Π΅ Π½Π΅ взята Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Бинтаксис ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΈΠ»ΠΈ отсутствиС значСния выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π“Π”Π•

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.ΠžΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ Π•Π‘Π’Π¬ NULL

Π˜Π›Π˜ Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.ΠžΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ = &ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ индСксы ΠΏΠΎ полям, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΌ NULL, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΡ€ΠΈ использовании ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π•Π‘Π’Π¬ NULL. Однако комбинация условий с Π˜Π›Π˜, Π³Π΄Π΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ· условий провСряСт NULL, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π³Ρ€Π°Π΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² зависимости ΠΎΡ‚ вСрсии Π‘Π£Π‘Π”.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π›ΠΎΠ³ΠΈΠΊΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ NULL Π² 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ чистой SQL-Π»ΠΎΠ³ΠΈΠΊΠΈ Π² зависимости ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° совмСстимости ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ВсСгда тСстируйтС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ с пустыми значСниями Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ‹.

Π‘Π»ΠΎΠΆΠ½Ρ‹Π΅ логичСскиС конструкции ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ запросы

Иногда простых условий нСдостаточно. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠ±Π΅Π³Π°ΡŽΡ‚ ΠΊ использованию Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… запросов Π²Π½ΡƒΡ‚Ρ€ΠΈ сСкции Π“Π”Π•. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠŸΠžΠ”ΠžΠ‘ΠΠž Ρ‚Π°ΠΊΠΆΠ΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для тСкстового поиска, Π½ΠΎ ΠΎΠ½ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ остороТности.

ИспользованиС ΠŸΠžΠ”ΠžΠ‘ΠΠž с Π»ΠΈΠ΄ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ символом подстановки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, '%Π’ΠΎΠ²Π°Ρ€') практичСски всСгда ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ использованиС индСксов. Поиск Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ΄Ρ‚ΠΈ ΠΏΠΎ всСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Если Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ wildcard символ Π² ΠΊΠΎΠ½Ρ†Π΅ строки ('Π’ΠΎΠ²Π°Ρ€%').

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ запросы Π² условии Π“Π”Π• с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π’ (IN) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, Π½ΠΎ ΠΎΠ½ создаСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ:

Π“Π”Π•

РСгистрНакоплСния.НомСнклатура Π’

(ВЫБРАВЬ

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.Бсылка

Π˜Π—

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура КАК Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ

Π“Π”Π•

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.ВидНомСнклатуры = &Π’ΠΈΠ΄)

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΡƒΠ΄ΠΎΠ±Π΅Π½ для чтСния ΠΊΠΎΠ΄Π°, Π½ΠΎ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… часто эффСктивнСС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, создавая ΠΈΡ… Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΈ соСдиняя Ρ‡Π΅Ρ€Π΅Π· Π›Π•Π’ΠžΠ• Π‘ΠžΠ•Π”Π˜ΠΠ•ΠΠ˜Π•.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠŸΠžΠ”ΠžΠ‘ΠΠž с '%' Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ?

ΠŸΡ€ΠΈ поискС '%Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅' Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ B-Π΄Π΅Ρ€Π΅Π²ΠΎ индСкса, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ индСкс отсортирован ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° строки. Π•ΠΉ приходится ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ всС записи подряд.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ²

Π§Ρ‚ΠΎΠ±Ρ‹ наглядно ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ влияниС условий сСкции Π“Π”Π• Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹, рассмотрим ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ERP.

Π”Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ тСстирования Π½Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ ΠΈΠ· 5 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² записСй рСгистра накоплСния. ВрСмя ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² миллисСкундах.

ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ИспользованиС индСкса Π‘Ρ€Π΅Π΄Π½Π΅Π΅ врСмя (мс) Нагрузка Π½Π° CPU
ΠŸΡ€ΡΠΌΠΎΠ΅ сравнСниС (=) Π”Π° (ПолноС) 15 Низкая
Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (ΠœΠ•Π–Π”Π£) Π”Π° (ПолноС) 45 БрСдняя
Ѐункция Π² условии (Π“ΠžΠ”()) НСт 3500 Высокая
ΠŸΠžΠ”ΠžΠ‘ΠΠž '%тСкст' НСт 4200 Высокая
Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ запрос (Π’) Зависит ΠΎΡ‚ ΠΏΠ»Π°Π½Π° 120 БрСдняя

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊ полям Π² условии ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ врСмя выполнСния Π² сотни Ρ€Π°Π·. Π­Ρ‚ΠΎ происходит ΠΈΠ·-Π·Π° ΠΏΠΎΡ‚Π΅Ρ€ΠΈ возмоТности быстрого поиска ΠΏΠΎ индСксу.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ запроса часто сводится ΠΊ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΡŽ условий Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ соотвСтствовали структурС доступных индСксов Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

πŸ’‘

Π‘Π°ΠΌΡ‹ΠΉ эффСктивный способ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ запрос β€” ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ лСвая Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° сравнСния содСрТала Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя поля Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π΅Π· ΠΎΠ±Π΅Ρ€Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Ρƒ

Π’ процСссС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ запросы, написанныС нСсколько Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ роста Π±Π°Π·Ρ‹. Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Ρ‚Π°ΠΊΠΈΡ… участков ΠΊΠΎΠ΄Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° сСкции Π“Π”Π•.

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

Π’Π°ΠΊΠΆΠ΅ стоит ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ конструкций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приводят ΠΊ нСявным прСобразованиям Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ строки с числом ΠΈΠ»ΠΈ Π΄Π°Ρ‚Ρ‹ с строкой ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ ΠΈΠ»ΠΈ ошибкам выполнСния.

  • πŸ›  ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ ΠΏΠΎΠ»Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ сравнСниСм.
  • πŸ“ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ слоТныС условия прямо Π² ΠΊΠΎΠ΄Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².
  • ⚑ Π Π°Π·Π±ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Π΅ запросы Π½Π° этапы с использованиСм Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†.

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Π°. ОбновлСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π° запросов. Π’ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ быстро Π² вСрсии 8.3.10, ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² вСрсии 8.3.25.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ПовСдСниС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π° запросов ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² индСксации ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ послС обновлСния ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ ΠΈΠ»ΠΈ вСрсии Π‘Π£Π‘Π”. ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ тСстирования послС ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ языка 1Π‘ прямо Π² сСкции Π“Π”Π•?

НСт, Π² тСкст запроса нСльзя Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Π° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ. НСобходимо ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса (прСфикс &), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ значСния Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ И ΠΈ Π˜Π›Π˜ Π² ΠΏΠ»Π°Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ?

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ И ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ суТаСт Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ индСксам. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π˜Π›Π˜ часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ объСдинСнию Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π΄Π²ΡƒΡ… Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Ρ‚Ρ€Π°Ρ‚Π½Ρ‹ΠΌ, Ссли ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· условий Π½Π΅ покрываСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ эффСктивным индСксом.

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ индСкс Π² ΠΌΠΎΠ΅ΠΌ запросС?

Для этого Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ запрос Ρ‡Π΅Ρ€Π΅Π· "Консоль запросов" ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… запросов Π² Π‘Π£Π‘Π”. Π’ ΠΏΠ»Π°Π½Π΅ выполнСния ΠΈΡ‰ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ "Index Seek" ΠΈΠ»ΠΈ "Index Scan", избСгая "Table Scan" ΠΈΠ»ΠΈ "Seq Scan".

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли условиС Π“Π”Π• слишком Π΄Π»ΠΈΠ½Π½ΠΎΠ΅?

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

ВлияСт Π»ΠΈ порядок ΠΏΠΎΠ»Π΅ΠΉ Π² составном индСксС Π½Π° ΡΠ΅ΠΊΡ†ΠΈΡŽ Π“Π”Π•?

Π”Π°, влияСт критичСски. Для использования составного индСкса условиС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ поля индСкса. Если Π²Ρ‹ пропускаСтС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ, индСкс скорСС всСго Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ использован.