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

Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ простым языком, 1Π‘ SQL Π² строгом смыслС β€” это использованиС Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ языка запросов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Transact-SQL для Microsoft SQL Server ΠΈΠ»ΠΈ PL/pgSQL для PostgreSQL) Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π² ΠΎΠ±Ρ…ΠΎΠ΄ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π΅Ρ‚ практичСски Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ возмоТности ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ манипуляции Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π½ΠΎ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ остороТности. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ взаимодСйствия, различия ΠΌΠ΅ΠΆΠ΄Ρƒ встроСнными запросами ΠΈ прямым SQL, Π° Ρ‚Π°ΠΊΠΆΠ΅ ситуации, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π·Π° Ρ€Π°ΠΌΠΊΠΈ стандартных срСдств Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

АрхитСктура доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ спроСктирована Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ нСзависимой ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ систСмы управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Π‘Π£Π‘Π”). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΈΡˆΠ΅Ρ‚ ΠΊΠΎΠ΄ Π½Π° встроСнном языкС, Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° сама транслируСт Π΅Π³ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, понятныС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π‘Π£Π‘Π”: MSSQL, PostgreSQL, Oracle ΠΈΠ»ΠΈ встроСнному Firebird. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ обСспСчиваСт ΠΊΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….

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

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

πŸ’‘

ΠŸΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π»ΡŽΠ±Ρ‹Ρ… прямых SQL-ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сдСлайтС ΠΏΠΎΠ»Π½ΡƒΡŽ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ ΠΈΠ»ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΡƒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ dtb), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΠ°Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· интСрфСйс 1Π‘ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½.

ВстроСнный язык запросов 1Π‘ ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ SQL

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡƒΡ€ΠΎΠ²Π½Π΅ абстракции. ВстроСнный язык запросов 1Π‘ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ понятиями ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…: Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, справочниками, рСгистрами. Π’Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ запрос Π½Π° русском языкС (ΠΈΠ»ΠΈ английском, Π² зависимости ΠΎΡ‚ Π»ΠΎΠΊΠ°Π»ΠΈ), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ понятныС ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π‘ΡƒΠΌΠΌΠ° ΠΈΠ»ΠΈ ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚.

Нативный SQL Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с физичСскими Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ. ВмСсто понятного ΠΈΠΌΠ΅Π½ΠΈ"Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.РСализацияВоваровУслуг" Π²Π°ΠΌ придСтся ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Ρ€ΠΎΠ΄Π΅ _DocSh1045. Бвязи ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· поля-ссылки, содСрТащиС Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ UUID, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€ΡƒΡ‡Π½ΠΎΠ΅ написаниС Ρ‚Π°ΠΊΠΈΡ… запросов ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΌ ΠΈ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½Ρ‹ΠΌ ошибкам.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, прямой SQL ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ рядом прСимущСств Π² спСцифичСских Π·Π°Π΄Π°Ρ‡Π°Ρ…:

  • πŸš€ ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов Π½Π° Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ запроса ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ ускорСниС Π² Ρ€Π°Π·Ρ‹ для слоТных аналитичСских ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ².
  • πŸ›  Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ: Доступ ΠΊΠΎ всСм функциям ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π‘Π£Π‘Π”, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, рСкурсивныС CTE ΠΈ спСцифичСскиС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ встроСнным языком.
  • πŸ” АдминистрированиС: Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ поиска"Π±ΠΈΡ‚Ρ‹Ρ…" ссылок, Π°Π½Π°Π»ΠΈΠ·Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ (deadlocks) ΠΈ управлСния индСксами Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….
πŸ’‘

ВстроСнный язык запросов 1Π‘ бСзопаснСС ΠΈ ΠΏΡ€ΠΎΡ‰Π΅ Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ автоматичСски адаптируСтся ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ прямой SQL-ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒΡΡ послС любого измСнСния структуры ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ использования прямого SQL Π² 1Π‘

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

Одной ΠΈΠ· распространСнных Π·Π°Π΄Π°Ρ‡ являСтся оптимизация тяТСлых Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ. Если стандартный запрос 1Π‘ выполняСтся ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ ΠΈΠ»ΠΈ часы ΠΈΠ·-Π·Π° Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π° выполнСния, ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ DBA ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° чистом SQL, Π΄ΠΎΠ±Π°Π²ΠΈΠ² спСцифичСскиС подсказки ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Ρƒ (hints) ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π­Ρ‚ΠΎ позволяСт Ρ€Π°Π·Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ сСрвСр ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΡΠΌΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π»Π°Ρ… рСгистрации Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ (рСгистры накоплСния, Π±ΡƒΡ…Π³Π°Π»Ρ‚Π΅Ρ€ΠΈΠΈ) Π±Π΅Π· использования стандартных ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² провСдСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΡ‡Ρ‚ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ рассинхронизации ΠΈΡ‚ΠΎΠ³ΠΎΠ². Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π²Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΡ‚ΠΎΠ³ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π‘Π£Π‘Π”.

ВСхничСскиС особСнности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ запросов

Для выполнСния Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… SQL-запросов ΠΈΠ· срСды 1Π‘ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ внСшняя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ Ρ‡Π΅Ρ€Π΅Π· COM-соСдинСниС ΠΈΠ»ΠΈ ADO. Π­Ρ‚ΠΎ позволяСт ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ строку запроса нСпосрСдствСнно Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρƒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Бинтаксис зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π‘Π£Π‘Π”: для Microsoft SQL Server это T-SQL, для PostgreSQL β€” PL/pgSQL.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ структуры Ρ‚Π°ΠΊΠΎΠ³ΠΎ взаимодСйствия. Π’Π°ΠΌ потрСбуСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ соСдинСния, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ строку ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (Connection String) ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ запросов для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ SQL-ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ, Π΄Π°ΠΆΠ΅ Ссли доступ ΠΊ Π±Π°Π·Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ.

// ΠŸΡ€ΠΈΠΌΠ΅Ρ€ псСвдокода для выполнСния внСшнСго запроса

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ = Новый COMΠžΠ±ΡŠΠ΅ΠΊΡ‚("ADODB.Connection");

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.Open(БтрокаБоСдинСния);

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.Execute("SELECT COUNT(*) FROM _Reference123");

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ спСциализированныС инструмСнты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ консоль запросов 1Π‘ ΠΈΠ»ΠΈ внСшниС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ (DBeaver, SSMS), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Π’ Ρ‚Π°ΠΊΠΈΡ… инструмСнтах Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅"Ρ‡ΠΈΡΡ‚ΡƒΡŽ" структуру Π±Π°Π·Ρ‹. Для удобства Π°Π½Π°Π»ΠΈΠ·Π° часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ систСмныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ _Params ΠΈΠ»ΠΈ _MetaClasses, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° физичСских Ρ‚Π°Π±Π»ΠΈΡ†.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ имя физичСской Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° 1Π‘?

Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘ имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ хранится Π² свойствС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Для справочников это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСфикс _Reference, для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² _Doc, для рСгистров свСдСний _InfoRg. Однако Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ соотвСтствиС ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ систСмных ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ свойство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅.

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ характСристика ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

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

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ сравнСния ВстроСнный язык 1Π‘ ΠŸΡ€ΡΠΌΠΎΠΉ SQL (Native) Консоль запросов (Π’Π½Π΅ΡˆΠ½ΡΡ)
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ абстракции Высокий (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹) Низкий (Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, поля) Низкий (Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, поля)
Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Высокая (ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ) Низкая (риск поврСТдСния) Низкая (риск поврСТдСния)
Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ вСрсии АвтоматичСская адаптация ЖСсткая привязка ΠΊ структурС ЖСсткая привязка ΠΊ структурС
ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ БрСдняя/Высокая Максимальная (ΠΏΡ€ΠΈ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅) Максимальная
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Низкая Высокая (Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π½. Π‘Π£Π‘Π”) БрСдняя

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, прямой SQL Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π² скорости ΠΈ гибкости, Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π² бСзопасности ΠΈ удобствС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. ВстроСнный язык являСтся Π·ΠΎΠ»ΠΎΡ‚Ρ‹ΠΌ стандартом для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ SQL остаСтся инструмСнтом"тяТСлой Π°Ρ€Ρ‚ΠΈΠ»Π»Π΅Ρ€ΠΈΠΈ" для администраторов ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ².

πŸ“Š Какой инструмСнт Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ для слоТной Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ Π² 1Π‘?
ВстроСнныС запросы 1Π‘
ΠŸΡ€ΡΠΌΠΎΠΉ SQL Ρ‡Π΅Ρ€Π΅Π· внСшнюю ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ
Π‘ΠšΠ” (БистСма Компоновки Π”Π°Π½Π½Ρ‹Ρ…)
Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ BI-систСмы (PowerBI, Tableau)

Риски ΠΈ ΠΌΠ΅Ρ€Ρ‹ прСдостороТности

Π Π°Π±ΠΎΡ‚Π° с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ SQL нСсСт Π² сСбС ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ риски. Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ выполняйтС DML-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (INSERT, UPDATE, DELETE) Π² Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ врСмя Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования Π½Π° ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ‹. Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ вашим скриптом, ΠΌΠΎΠ³ΡƒΡ‚"ΠΏΠΎΠ²Π΅ΡΠΈΡ‚ΡŒ" Ρ€Π°Π±ΠΎΡ‚Ρƒ всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ прСдприятия.

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ послС обновлСния ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ИмСна Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†, систСмных ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π΄Π°ΠΆΠ΅ основных Ρ‚Π°Π±Π»ΠΈΡ† ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹. SQL-скрипт, Ρ€Π°Π±ΠΎΡ‚Π°Π²ΡˆΠΈΠΉ Π²Ρ‡Π΅Ρ€Π°, сСгодня ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ"Invalid object name". ВсСгда провСряйтС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ запуском.

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

β˜‘οΈ Π§Π΅ΠΊ-лист ΠΏΠ΅Ρ€Π΅Π΄ запуском SQL-скрипта Π² 1Π‘

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

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

МоТно Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ SQL-запрос прямо ΠΈΠ· ΠΊΠΎΠ΄Π° модуля Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘?

ΠΠ°ΠΏΡ€ΡΠΌΡƒΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ встроСнный синтаксис 1Π‘, нСльзя. ВстроСнный язык запросов β€” это Π½Π΅ SQL. Однако Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²Π½Π΅ΡˆΠ½ΠΈΡ… соСдинСний (COM,.NET) ΠΈΠ»ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ внСшнюю ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, которая Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ запрос Ρ‡Π΅Ρ€Π΅Π· Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π‘Π£Π‘Π” ΠΈ Π²Π΅Ρ€Π½Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² 1Π‘.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠΎΠΉ SQL-запрос Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ пустой Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, хотя Π΄Π°Π½Π½Ρ‹Π΅ Π΅ΡΡ‚ΡŒ?

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π²Ρ‹ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ опрСдСляСтС имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ ссылки. Π’ 1Π‘ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ хранятся Π² спСцифичСском Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²Π° доступа ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π‘Π£Π‘Π”, ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ выполняСтся соСдинСниС β€” Ρƒ Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π°Π² Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†.

ΠΠ°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ Π»ΠΈ использованиС прямого SQL Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠ΅ соглашСниС 1Π‘?

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

Как Π½Π°ΠΉΡ‚ΠΈ соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² SQL ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅?

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСсколькими способами: ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ свойство"Имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹" Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Π»ΠΈΠ±ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ запрос ΠΊ систСмным Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, _Params), Π³Π΄Π΅ хранится ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ ΠΈΠΌΠ΅Π½.

Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ SQL Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ 1Π‘?

ΠžΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ Π΄Π°. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ 1Π‘ транслируСт свои запросы Π² SQL, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ индСксы ΠΈ эффСктивно Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….