Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° эффСктивных Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ часто сталкиваСтся с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ динамичСскому Π½Π°Π±ΠΎΡ€Ρƒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π². Когда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ задаСтся вопросом, ΠΊΠ°ΠΊ Π² запрос ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ 1Π‘, ΠΎΠ½ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡ‰Π΅Ρ‚ способ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ массивов, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ внСшнСго источника. ΠŸΡ€ΡΠΌΠ°Ρ подстановка Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… списков Π² тСкст запроса Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ услоТняСт Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ограничСниями Π½Π° Π΄Π»ΠΈΠ½Ρƒ строки запроса.

БущСствуСт нСсколько Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎ Π²Π΅Ρ€Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ этой Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ свои сцСнарии примСнСния. Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° зависит ΠΎΡ‚ объСма ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, контСкста выполнСния ΠΊΠΎΠ΄Π° (ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрноС взаимодСйствиС) ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π±Ρ‹ΡΡ‚Ρ€ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ систСмы. ПониманиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запроса являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ Π½Π°Π²Ρ‹ΠΊΠΎΠΌ для любого программиста 1Π‘.

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

ИспользованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ‚ΠΈΠΏΠ° БписокЗначСний

Π‘Π°ΠΌΡ‹ΠΉ распространСнный ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ способ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π½Π°Π±ΠΎΡ€Ρƒ элСмСнтов β€” это использованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° запроса с Ρ‚ΠΈΠΏΠΎΠΌ БписокЗначСний. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (чисСл, строк, ссылок) Π²Π½ΡƒΡ‚Ρ€ΡŒ запроса. ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ тСкста запроса Π²Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΅Π³ΠΎ Π² условии Π’.

Бинтаксис Ρ‚Π°ΠΊΠΎΠ³ΠΎ обращСния ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ прост ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятСн. Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡΠΊΠ»Π΅ΠΈΠ²Π°Ρ‚ΡŒ строки ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ структуры. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° автоматичСски ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ список Π² Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° IN. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ВЫБРАВЬ

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

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

Π˜Π—

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

Π“Π”Π•

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура.Бсылка Π’ (&БписокБсылок)

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

Однако стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ограничСния ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π₯отя ΠΎΠ½ΠΈ достаточно Π²Π΅Π»ΠΈΠΊΠΈ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° бизнСс-Π·Π°Π΄Π°Ρ‡, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° дСсятков тысяч записСй Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ нСявноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ компиляции запроса. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹.

πŸ’‘

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ списка ссылок ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π² БпискСЗначСний хранятся ΠΈΠΌΠ΅Π½Π½ΠΎ ссылки, Π° Π½Π΅ строковыС прСдставлСния GUID, ΠΈΠ½Π°Ρ‡Π΅ сравнСниС Π½Π΅ сработаСт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ…

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

ΠŸΡ€ΠΎΡ†Π΅ΡΡ создания Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ состоит ΠΈΠ· Π΄Π²ΡƒΡ… этапов. Π‘Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹ создаСтС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π’Π°Π±Π»ΠΈΡ†ΡƒΠ’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰, заполняСтС Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ рСгистрируСтС ΠΊΠ°ΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ. ПослС этого имя Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ становится доступным Π² тСкстС запроса.

// Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

Π’Π°Π±Π»ΠΈΡ†Π°Π€ΠΈΠ»ΡŒΡ‚Ρ€Π° = Новый Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;

Π’Π°Π±Π»ΠΈΡ†Π°Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Бсылка", ВипОписанияВипов("БправочникБсылка.НомСнклатура"));

//.. Ρ†ΠΈΠΊΠ» заполнСния..

// РСгистрация Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

Π˜ΠΌΡΠ’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉΠ’Π°Π±Π»ΠΈΡ†Ρ‹ = "Π’Π’_Π€ΠΈΠ»ΡŒΡ‚Ρ€";

Запрос.Π’Π°Π±Π»ΠΈΡ†Ρ‹Π‘Ρ…Π΅ΠΌΡ‹.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π’Π°Π±Π»ΠΈΡ†Π°Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°, Π˜ΠΌΡΠ’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉΠ’Π°Π±Π»ΠΈΡ†Ρ‹);

ИспользованиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² запросС Π΄Π°Π΅Ρ‚ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Π½Π΅Π΄ΠΎΡΡ‚ΠΈΠΆΠΈΠΌΡƒΡŽ для простых ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ соСдинСния (Π›Π•Π’ΠžΠ• Π‘ΠžΠ•Π”Π˜ΠΠ•ΠΠ˜Π•, ВНУВРЕННЕЕ Π‘ΠžΠ•Π”Π˜ΠΠ•ΠΠ˜Π•) ΠΌΠ΅ΠΆΠ΄Ρƒ основной Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ вашим списком Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ просто ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ записи, Π½ΠΎ ΠΈ ΠΏΠΎΠ΄Ρ‚ΡΠ½ΡƒΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈΠ· списка Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ сСссии выполнСния запроса. НС ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π½ΠΈΠΌ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ запроса, Ссли ΠΎΠ½ΠΈ Π½Π΅ Π±Ρ‹Π»ΠΈ явно ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π² схСму Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти сСрвСра 1Π‘ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ автоматичСски. Однако созданиС самой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΅Ρ‘ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, поэтому для ΠΌΠ°Π»Ρ‹Ρ… Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ.

β˜‘οΈ Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 5

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ списков

Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ-списком ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ часто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ затруднСния Ρƒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π§Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ знания, рассмотрим ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ основных характСристик этих ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ². Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ взвСшСнноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² зависимости ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ различия, Π²Π»ΠΈΡΡŽΡ‰ΠΈΠ΅ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ "Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ", Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ влияСт Π½Π° врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ΄Π°.

ΠšΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ БписокЗначСний ВрСмСнная Ρ‚Π°Π±Π»ΠΈΡ†Π° Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅
ОбъСм Π΄Π°Π½Π½Ρ‹Ρ… Π”ΠΎ 5-10 тысяч элСмСнтов ДСсятки ΠΈ сотни тысяч ΠœΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ записСй
Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Высокая (ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΊΠΎΠ΄Π°) БрСдняя (Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ) Низкая (сСрвСрная запись)
Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ JOIN Волько ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’ ΠŸΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ соСдинСния ΠŸΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ соСдинСния
Нагрузка Π½Π° ΡΠ΅Ρ‚ΡŒ Минимальная Зависит ΠΎΡ‚ объСма Π΄Π°Π½Π½Ρ‹Ρ… Минимальная (Ссли Π½Π° сСрвСрС)

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, для стандартных Ρ„ΠΎΡ€ΠΌ ΠΎΡ‚Π±ΠΎΡ€ΠΎΠ² ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ БписокЗначСний являСтся Π±Π΅Π·Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Π»ΠΈΠ΄Π΅Ρ€ΠΎΠΌ ΠΏΠΎ простотС ΠΈ скорости. Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ услоТняСтся ΠΈΠ»ΠΈ объСм Π΄Π°Π½Π½Ρ‹Ρ… становится критичСским.

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° сСрвСрС ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ ΠΈ Π΄Π°ΠΆΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ (ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ настройкС ΠΏΡ€Π°Π²). Π­Ρ‚ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ тяТСлых Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΉ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ управлСния ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ….

πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ БписокЗначСний
ВрСмСнная Ρ‚Π°Π±Π»ΠΈΡ†Π°
Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅
ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ строк

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрного взаимодСйствия

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со списками Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ критичСски Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ сСрвСром. Часто Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π½Π° сСрвСр ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ массивы Π΄Π°Π½Π½Ρ‹Ρ…, сформированныС Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π·Π°Ρ‚ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Π½ΠΈΡŽ ΠΊΠ°Π½Π°Π»Π° связи. ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Π°Ρ стратСгия β€” Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΌ, Π³Π΄Π΅ это Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивно, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹.

Если список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ формируСтся Π½Π° основС ΠΎΡ‚Π±ΠΎΡ€Π° Π² Ρ„ΠΎΡ€ΠΌΠ΅, располоТСнной Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ сразу ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² БписокЗначСний ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² сСрвСрный ΠΌΠ΅Ρ‚ΠΎΠ΄. Однако, Ссли Π΄Π°Π½Π½Ρ‹Π΅ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ эту Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ сразу Π½Π° сСрвСрС, избСгая лишнСго сСтСвого Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°.

Рассмотрим Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ сцСнарий: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π΄Π΅Π»ΠΈΠ» нСсколько строк Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Ρ„ΠΎΡ€ΠΌΡ‹. Нам Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ этим строкам Ρ‡Π΅Ρ€Π΅Π· запрос.

// На ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅

ΠœΠ°ΡΡΠΈΠ²Π’Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… = Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹Π€ΠΎΡ€ΠΌΡ‹.Π’Π°Π±Π»ΠΈΡ†Π°.Π’Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅Π‘Ρ‚Ρ€ΠΎΠΊΠΈ;

БписокДляБСрвСра = Новый БписокЗначСний;

Для КаТдого ИндСкс Из ΠœΠ°ΡΡΠΈΠ²Π’Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π¦ΠΈΠΊΠ»

БписокДляБСрвСра.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(ΠœΠ°ΡΡΠΈΠ²Π’Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ…[ИндСкс].Бсылка);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

// Π’Ρ‹Π·ΠΎΠ² сСрвСра

Π”Π°Π½Π½Ρ‹Π΅ = ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ”Π°Π½Π½Ρ‹Π΅ΠŸΠΎΠ‘ΠΏΠΈΡΠΊΡƒ(БписокДляБСрвСра);

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ сСрвСром сСриализуСтся. Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… структур ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с большим количСством ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΡŽΡ‡ΠΈ.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅. Если список содСрТит значСния Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ссылки Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ справочники), использованиС БпискаЗначСний ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ привСдСния Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠ»ΠΈ использования ΠΎΠ±Ρ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° Π‘Ρ‚Ρ€ΠΎΠΊΠ° с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² запросС, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСриализация Π² 1Π‘?

Π­Ρ‚ΠΎ процСсс прСобразования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΉ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎ сСти ΠΈΠ»ΠΈ сохранСния Π² Ρ„Π°ΠΉΠ». Π’ 1Π‘ это происходит автоматичСски ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ сСрвСрных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ· ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ врСмя ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ запросов

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° списка Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β€” это Π½Π΅ просто синтаксичСская конструкция, это Ρ‚ΠΎΡ‡ΠΊΠ° прилоТСния усилий ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС списков ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ запросов Π½Π΅ смоТСт ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ эффСктивный ΠΏΠ»Π°Π½ выполнСния. ОсобСнно это касаСтся случаСв, ΠΊΠΎΠ³Π΄Π° список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² условиях соСдинСния.

Один ΠΈΠ· Π²Π°ΠΆΠ½Ρ‹Ρ… аспСктов β€” использованиС индСксов. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ автоматичСски создаСт индСксы ΠΏΠΎ всСм ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌ, Ρ‡Ρ‚ΠΎ ускоряСт поиск. Однако ΠΏΡ€ΠΈ использовании ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π’ (&Бписок) Π‘Π£Π‘Π” ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ скан Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ссли статистика ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ список ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….

Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ рСкомСндуСтся:

  • πŸš€ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ БпискиЗначСний, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ нСявных ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ Π‘Π£Π‘Π”.
  • πŸ“‰ Π˜Π·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² Π² спискС, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ очищая ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΡ.
  • πŸ” Π Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ большиС списки (Π±ΠΎΠ»Π΅Π΅ 50 000 элСмСнтов) Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ запросы ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ.

Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст запроса Ρ‡Π΅Ρ€Π΅Π· консоль запросов ΠΈΠ»ΠΈ встроСнный ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠ»Π°Π½ выполнСния: Ссли Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Table Scan вмСсто Index Seek ΠΏΡ€ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ списку, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, стоит ΠΏΠ΅Ρ€Π΅ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ структуру индСксов Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ способ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

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

πŸ’‘

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ начинаСтся с Π°Π½Π°Π»ΠΈΠ·Π° объСма Π΄Π°Π½Π½Ρ‹Ρ…: для ΠΌΠ°Π»Ρ‹Ρ… списков ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… β€” Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с индСксами.

ЧастыС ошибки ΠΈ способы ΠΈΡ… устранСния

Π”Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ошибки ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со списками Π² запросах. НаиболСС частая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” нСсоотвСтствиС Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠΉ Число, список строк, ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° пустого списка, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ пустой Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ ΠΈΠ»ΠΈ ошибкС выполнСния Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° распространСнная ошибка β€” использованиС ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк для формирования условия Π’ ('Π—Π½Π°Ρ‡1', 'Π—Π½Π°Ρ‡2'..). Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ катСгоричСски Π½Π΅ рСкомСндуСтся ΠΏΠΎ нСскольким ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ: риск SQL-ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ (хотя Π² 1Π‘ ΠΎΠ½ Π½ΠΈΠΆΠ΅, Ρ‡Π΅ΠΌ Π² Π²Π΅Π±Π΅), ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с экранированиСм спСцсимволов ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°:

// ΠŸΠ›ΠžΠ₯О: Π ΡƒΡ‡Π½ΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строки

БтрокаБписка = """Π—Π½Π°Ρ‡1"", ""Π—Π½Π°Ρ‡2""";

ВСкстЗапроса = "ВЫБРАВЬ.. Π“Π”Π• ПолС Π’ (" + БтрокаБписка + ")";

Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ, ΠΈ ΠΎΠ½ ломаСтся, Ссли Π² Π΄Π°Π½Π½Ρ‹Ρ… Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ запросы. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠΉΡ‚Π΅ тСкст запроса динамичСски ΠΏΡƒΡ‚Π΅ΠΌ склСивания Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°. Π­Ρ‚ΠΎ Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ бСзопасности ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Ρ…Ρ€ΡƒΠΏΠΊΠΈΠΌ.

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

ΠŸΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ’Π΅ΠΊΡΡ‚Π—Π°ΠΏΡ€ΠΎΡΠ°() Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° запроса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² контСкстС выполнСния (Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ это Π²ΠΈΠ΄Π½ΠΎ наглядно). Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ запрос Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ пустой список Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ?

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… конфигурациях ΠΈ вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° пустого БпискаЗначСний Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π‘Π£Π‘Π” ΠΊΠ°ΠΊ синтаксичСская ошибка ΠΈΠ»ΠΈ условиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ всСгда Π»ΠΎΠΆΠ½ΠΎ. ВсСгда провСряйтС список Π½Π° пустоту ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ запроса.

МоТно Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² запрос массив строк вмСсто БпискаЗначСний?

НСт, Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ массив строк ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ нСльзя. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ спСцифичСский Ρ‚ΠΈΠΏ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ массив Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ БписокЗначСний, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ» ΠΈΠ»ΠΈ встроСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ, Ссли ΠΎΠ½ΠΈ доступны Π² вашСй вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Как ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ список структур Π² запрос?

Бписок структур Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² запрос ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Запросы Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ простыми Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ поля ΠΈΠ· структур Π² Π’Π°Π±Π»ΠΈΡ†ΡƒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΊΠ°ΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ поля Π² БпискСЗначСний.

ВлияСт Π»ΠΈ порядок элСмСнтов Π² БпискСЗначСний Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚?

НСт, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π»ΠΎΠ³ΠΈΠΊΡƒ мноТСства. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ слСдования элСмСнтов Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ Π½Π΅ влияСт Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π‘Π£Π‘Π” сама ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ поиск ΠΏΠΎ Π½Π°Π±ΠΎΡ€Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ содСрТит Null?

Π’ΠΈΠΏ БписокЗначСний Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Null) Π² явном Π²ΠΈΠ΄Π΅ для простых Ρ‚ΠΈΠΏΠΎΠ². Если Π² источникС Π΄Π°Π½Π½Ρ‹Ρ… Π΅ΡΡ‚ΡŒ пустыС ссылки ΠΈΠ»ΠΈ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ значСния, ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π² список, Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ условиСм Π˜Π›Π˜ ПолС Π•Π‘Π’Π¬ NULL Π² запросС.

Π•ΡΡ‚ΡŒ Π»ΠΈ Ρ€Π°Π·Π½ΠΈΡ†Π° Π² скорости ΠΌΠ΅ΠΆΠ΄Ρƒ Π’ (&Бписок) ΠΈ Π’ (ВЫБРАВЬ..)?

Π”Π°, Π΅ΡΡ‚ΡŒ. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’ (&БписокЗначСний) ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ быстрСС для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π½Π°Π±ΠΎΡ€ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ пСрСдаСтся ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€. ΠŸΠΎΠ΄Π·Π°ΠΏΡ€ΠΎΡ Π’ (ВЫБРАВЬ.. Π˜Π— ВрСмСннаяВаблица) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈΠ·-Π·Π° Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ запроса, Π½ΠΎ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π·Π° счСт использования индСксов Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.