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

Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ чСловСчСскоС прСдставлСниС ΠΎ "Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠ΅ НомСнклатуры" Π² Π½Π°Π±ΠΎΡ€ систСмных Ρ‚Π°Π±Π»ΠΈΡ† с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π²ΠΈΠ΄ΠΈΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° сСрвСр 1Π‘ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ (UUID), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ логичСскиС сущности с физичСским Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ΠΌ. Ошибки Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ этого процСсса часто приводят ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ сСрвСр Π½Π΅ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

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

АрхитСктура хранСния ссылок Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

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

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, MS SQL Server ΠΈΠ»ΠΈ PostgreSQL) ссылки хранятся Π² спСциализированных полях Ρ‚ΠΈΠΏΠ° uniqueidentifier ΠΈΠ»ΠΈ ΠΈΡ… Π°Π½Π°Π»ΠΎΠ³Π°Ρ…. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ абстрагируСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ прямого управлСния этими ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ, Π½ΠΎ Π·Π½Π°Π½ΠΈΠ΅ ΠΈΡ… ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… запросов. Если Π²Ρ‹ посмотритС структуру Ρ‚Π°Π±Π»ΠΈΡ† Ρ‡Π΅Ρ€Π΅Π· административныС инструмСнты Π‘Π£Π‘Π”, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π° справочника содСрТит Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ваши Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹, Π½ΠΎ ΠΈ систСмныС поля для вСрсионности ΠΈ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΡΠΌΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ систСмных ΠΏΠΎΠ»Π΅ΠΉ ссылок Ρ‡Π΅Ρ€Π΅Π· SQL-запросы Π²Π½Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΠΎΠΉ ΠΏΠΎΡ€Ρ‡Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΡ‚Π΅Ρ€Π΅ ссылочной цСлостности. Никогда Π½Π΅ мСняйтС значСния ΠΏΠΎΠ»Π΅ΠΉ _Ref Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

КаТдая ссылка состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй: ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ самого значСния UUID. Π­Ρ‚ΠΎ позволяСт ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ относится данная запись, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½Π° пСрСдаСтся ΠΊΠ°ΠΊ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€. Вакая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° обСспСчиваСт Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Π½ΠΎ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ трСбования Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π’ΠΈΠΏΠ—Π½Ρ‡() для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠ° ссылки, Ссли Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок прСобразования Ρ‚ΠΈΠΏΠΎΠ².

ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с кэшСм

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

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

  • πŸš€ ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠΉ кэш Ρ…Ρ€Π°Π½ΠΈΡ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² для быстрого отобраТСния Ρ„ΠΎΡ€ΠΌ.
  • βš™οΈ Π‘Π΅Ρ€Π²Π΅Ρ€Π½Ρ‹ΠΉ кэш ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… ссылок Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.
  • πŸ”„ ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ сбрасываСт кэш ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ структуры ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ стоит ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ситуации, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, хотя Π½ΡƒΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° Π΅Π³ΠΎ характСристика. Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠΎ ссылкС (GetObject()) всСгда Π΄ΠΎΡ€ΠΎΠΆΠ΅, Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ поля Ρ‡Π΅Ρ€Π΅Π· запрос. Π’ высоконагруТСнных систСмах такая Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ миллисСкунды Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈΠ· 10 000 ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ выливаСтся Π² сСкунды простоя.

πŸ“Š Как Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ссылкС?
Π’Ρ‹Π·Ρ‹Π²Π°ΡŽ GetObject()
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ запрос с JOIN
Π§ΠΈΡ‚Π°ΡŽ Ρ‡Π΅Ρ€Π΅Π· Π’Ρ‹Π±ΠΎΡ€ΠΊΡƒΠ”Π°Π½Π½Ρ‹Ρ…
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π’Π— для ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ запросов со ссылочными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ

НаиболСС ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΌ участком Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся построСниС запросов, Π³Π΄Π΅ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ соСдинСния (JOIN) ΠΏΠΎ ссылочным полям. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ организация условий ΠΎΡ‚Π±ΠΎΡ€Π° позволяСт Π‘Π£Π‘Π” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСксы эффСктивно. Если Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ условиС Π“Π”Π• Бсылка = Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ значСния строго соотвСтствуСт Ρ‚ΠΈΠΏΡƒ поля Π² Π±Π°Π·Π΅.

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

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅:

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ ОписаниС дСйствия ВлияниС Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
ΠŸΡ€ΡΠΌΠΎΠ΅ сравнСниС Π“Π”Π• НомСнклатура = &Бсылка Высокая (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ индСкс)
Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π“Π”Π• НомСнклатура.Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ = &UUID БрСдняя (Π΄ΠΎΠΏ. ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅)
Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ части строки Π“Π”Π• Π›Π΅Π²(НомСнклатура, 10) = "0000..." ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ низкая (ΠΏΠΎΠ»Π½Ρ‹ΠΉ скан)

ИспользованиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† для ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ хранСния ссылок ΠΏΠ΅Ρ€Π΅Π΄ массовым ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ часто Π΄Π°Π΅Ρ‚ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Π² скорости. Π­Ρ‚ΠΎ позволяСт Π‘Π£Π‘Π” ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½ выполнСния запроса, зная Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ объСм Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Ρ€Π°Π½Π΅Π΅. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° массива ссылок Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ запроса ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ, ΠΈ ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

β˜‘οΈ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ссылок

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

Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ транзакционная Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ

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

ΠžΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Ρ†ΠΈΠΊΠ»Π΅ Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ситуации Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (deadlock), ΠΊΠΎΠ³Π΄Π° Π΄Π²Π΅ сСссии ΠΆΠ΄ΡƒΡ‚ освобоТдСния рСсурсов Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ссылками Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΠ»ΠΈ использованиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ с большим количСством измСняСмых ссылок ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π‘Π£Π‘Π” ΠΈ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ всСй систСмы для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Для прСдотвращСния ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ управляСмыС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ явно, Ссли Π»ΠΎΠ³ΠΈΠΊΠ° бизнСса Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ строгой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Π”Π°Π½Π½Ρ‹Ρ… позволяСт Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ ссылок ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, минимизируя риск ΠΎΡ‚ΠΊΠ°Ρ‚Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈΠ·-Π·Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ…

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

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ Ρ„ΠΎΡ€ΠΌΡ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ значСния ΠΏΠΎΠ»Π΅ΠΉ, связанных с ссылками. ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ поля ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ обновлСния зависимых Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ². НапримСр, Π²Ρ‹Π±ΠΎΡ€ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ автоматичСски ΠΏΠΎΠ΄Ρ‚ΡΠ½ΡƒΡ‚ΡŒ Ρ†Π΅Π½Ρƒ ΠΈΠ»ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ измСрСния. Π­Ρ‚ΠΎΡ‚ процСсс Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ Π±Π°Π·Π΅ ΠΈΠ»ΠΈ ΠΊΡΡˆΡƒ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ слоТных Ρ„ΠΎΡ€ΠΌ.

ИспользованиС динамичСских списков (ДинамичСский список) для отобраТСния ссылочных Π΄Π°Π½Π½Ρ‹Ρ… являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° сама ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ запросы Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ, подгруТая Π΄Π°Π½Π½Ρ‹Π΅ порциями ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ списка ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Ручная рСализация Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ часто оказываСтся ΠΌΠ΅Π½Π΅Π΅ эффСктивной.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ динамичСскиС списки быстрСС?

ДинамичСскиС списки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ запросов 1Π‘, автоматичСски добавляя Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ соСдинСния ΠΈ ΠΎΡ‚Π±ΠΎΡ€Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Π»Π΅Π½ΠΈΠ²ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΈΠ΄ΠΈΠΌΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ‡Π°ΡΡ‚ΡŒ списка.

Диагностика ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

Если Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ссылочным Π΄Π°Π½Π½Ρ‹ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ инструмСнтом Π°Π½Π°Π»ΠΈΠ·Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ ВСхнологичСский ΠΆΡƒΡ€Π½Π°Π» (Π’Π–). Он позволяСт ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ врСмя выполнСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса ΠΊ Π‘Π£Π‘Π” ΠΈ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΡƒΠ·ΠΊΠΈΠ΅ мСста. Анализируя Π»ΠΎΠ³ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, тратится Π»ΠΈ врСмя Π½Π° сСтСвоС взаимодСйствиС, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ само Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ SQL-запроса.

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

Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ соСдинСния с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ настройки ΠΏΡƒΠ»Π° соСдинСний ΠΈΠ»ΠΈ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ систСма Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° установлСниС соСдинСния вмСсто выполнСния ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. РСгулярный ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ сСрвСра 1Π‘ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ станут критичСскими.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π‘Π£Π‘Π” (MSSQL, PostgreSQL, Oracle) ΠΈ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘. ВсСгда свСряйтС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ настройкС с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ для вашСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

πŸ’‘

Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ β€” ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ количСство ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ объСм ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΎΡ‚Π±ΠΎΡ€Ρ‹.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ссылкой ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ Π² 1Π‘?

Бсылка (БправочникБсылка) β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, содСрТащий ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΈΠΏΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (UUID) β€” это просто строковоС ΠΈΠ»ΠΈ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Бсылка ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π° UUID ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ хранСния.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ запрос с соСдинСниСм ΠΏΠΎ ссылкС выполняСтся ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ?

МСдлСнноС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‡Π°Ρ‰Π΅ всСго связано с отсутствиСм индСкса Π½Π° ΠΏΠΎΠ»Π΅ соСдинСния, большим объСмом Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ† ΠΈΠ»ΠΈ использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² условии соСдинСния, Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ использованиС индСкса. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ со стороны Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Как бСзопасно ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ массиву ссылок?

Для бСзопасного обновлСния слСдуСт Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ процСсс Π½Π° нСбольшиС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ списка ссылок Π² запрос ΠΈ явно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ обновлСния Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

МоТно Π»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ссылки Π² рСгистрС свСдСний?

Π”Π°, рСгистры свСдСний ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ измСрСния ΠΈ рСсурсы ссылочных Ρ‚ΠΈΠΏΠΎΠ². Π­Ρ‚ΠΎ стандартная ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° для хранСния историчСских Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… характСристик ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΡ€ΠΈ этом ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° автоматичСски обСспСчиваСт ΡΡΡ‹Π»ΠΎΡ‡Π½ΡƒΡŽ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ "битая ссылка" ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚?

Битая ссылка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½ ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ ссылка Π½Π° Π½Π΅Π³ΠΎ ΠΎΡΡ‚Π°Π»Π°ΡΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…. Π’ 1Π‘ это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдотвращаСтся ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ссылочной цСлостности, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΠΏΡ€ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· SQL ΠΈΠ»ΠΈ сбоях оборудования.