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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠœΠΈΡ€ InterBase. АрхитСктура, администрированиС ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π² InterBase/FireBird/YaffilΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 109

Автор А Ковязин

Sweeping. Π’ InterBase это процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ собираСт ΠΈ освобоТдаСт старыС ΠΈ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ вСрсии записСй Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎΡ‚ процСсс запускаСтся ΠΏΡ€ΠΈ достиТСнии ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ значСния (извСстного ΠΊΠ°ΠΊ Sweeping Interval) ΠΈ являСтся слСдствиСм \nioi ΠΎΠΈΠ΅Ρ€ΠΈΡŽΠ½Π½ΠΎΠΉ Π°Ρ€\шСк1\Ρ€Ρ‹ InieiBase-сСрвСра Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… коммСрчСских Π‘Π£Π‘Π” uiKoio процСсса Π½Π΅!. ΠŸΡ€ΠΎΡ†Π΅ΡΡ Sweeping ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ явно Π²Ρ‹Π·Π²Π°Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρƒ шли! администрирования InterBase. Sweeping - это сборка "мусора", выполняСмая для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

System tables (систСмныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹). РСляционныС Π‘Π£Π‘Π” самодостаточны. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ структурС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† Ρ‚Π°ΠΊΠΆΠ΅ хранятся Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…. Π­Ρ‚ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранят Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ схСму Π΄Π°Π½Π½Ρ‹Ρ…), ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ автоматичСски ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ систСмными Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ. Они содСрТат ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Ρ‚ΠΎΠΌ числС ΠΈ ΠΎ самих сСбС, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π» Ρ€Π°Π½ΡŒΡˆΠ΅ - ΠΊΡƒΡ€ΠΈΡ†Π° ΠΈΠ»ΠΈ яйцо. По соглашСнию названия систСмных.Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с прСфикса RDBS. Однако Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ систСмныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…, Ρ‚Π°ΠΊ это особый Ρ„Π»Π°Π³, распознаваСмый InterBase'oM. ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ хранится Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΠ»Π΅ Π² систСмных Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…, - Π² этих Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… хранится информация ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ…, Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… ΠΈ Ρ‚. Π΄.).

Transaction (транзакция). ЛогичСский Π½Π°Π±ΠΎΡ€ дСйствий, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Π² сСбя посылку ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° сСрвСр Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Вранзакция являСтся Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΌ дСйствиСм: Π»ΠΈΠ±ΠΎ всС дСйствия Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ.

Transaction log (Π»ΠΎΠ³ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ). ΠžΠ±Ρ‹Ρ‡Π½Π°Ρ рСляционная Π‘Π£Π‘Π” (ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π‘Π£Π‘Π”) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранится история Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. Когда происходит какая-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΠΎΠΌΠΊΠ°, сСрвСр ΠΏΡ€ΠΈ запускС Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ этот Ρ„Π°ΠΉΠ» ΠΈ опрСдСляСт, ΠΊΠ°ΠΊΠΈΠ΅ измСнСния Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, Π° ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. InterBase Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊΠΈΠΌΠΈ приспособлСниями, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² случаС возникновСния ΠΏΠΎΠ»ΠΎΠΌΠΊΠΈ многовСрсионная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° сСрвСра (см. MGA) ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ сСрвСра Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π° ΠΎΡ‚ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… вСрсий записСй, ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ ΠΎΡ‚ Π½Π΅ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, ΠΈΠ·Π±Π°Π²Π»ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния-измСнСния этих Π΄Π°Π½Π½Ρ‹Ρ….

Transaction zero. ВсС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΎΠ± ошибкС, Ссли новСйшая вСрсия записи Π±Ρ‹Π»Π° создана Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π½ΠΎ Π΅Ρ‰Π΅ Π½Π΅ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π°. Но сущСствуСт транзакция β„–0, которая запускаСтся сСрвСром. Π­Ρ‚Π° транзакция Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π² особом состоянии ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΡΡ‚ΠΈ, поэтому ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ всС измСнСния, ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… всСх Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Ρ…, ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Ρ…, ΠΈ всС вСрсии записСй. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для осущСствлСния условий ссылочной цСлостности (смотритС referential integrity) ΠΈ для обслуТивания индСксов Оак ΠΊΠ°ΠΊ индСксы ΠΎΡ‚Π»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ всС вСрсии Π²ΠΎ всСх нолях, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ).

UDF. Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ для User Defined Function (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ). Π’ InterBase имССтся нСбольшоС количСство встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ стандартом SQL. Для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ InterBase-сСрвСром Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ встроСнныС. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° FreeUDFLib слуТит дСмонстрациСй возмоТностСй UDF, Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляя Π½Π°Π±ΠΎΡ€ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΈ часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ…ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Unique key (ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ мнись u\upic/M Π² Ρ‹Π±Π»ΠΈΡ†Π΅ ΠΈ оыичас! Π΅Π΅ oi ΠΎΡΡ‹Π»ΡŒΠ½Ρ‹Ρ‡ записСй БдСдившСдьио, юлько ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡŽ ΠΊΠ»ΡŽΡ‡Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи. ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° являСтся ΠΏΠΎΠ»Π΅, значСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (Ρ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€) Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Часто ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅ Π½Π΅ удовлСтворяСт условиям ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, поэтому Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ ΠΏΠΎΠ»Π΅ΠΉ. Если Π½Π΅ сущСствуСт подходящСй для ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ суррогатный ΠΊΠ»ΡŽΡ‡ (см. Surrogate key). Когда ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² InterBase, Ρ‚ΠΎ автоматичСски создаСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ индСкс, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ всСгда Π² порядкС возрастания.

Y-Valve. Π’Π½ΡƒΡ‚Ρ€ΠΈ InterBase ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько "сСрвСров", ΠΈ ΠΊΠΎΠ³Π΄Π° происходит подсоСдинСниС, Ρ‚ΠΎ InterBase Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· сСрвСров ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Алгоритм для опрСдСлСния Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ сСрвСра называСтся Y-valve (ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ Π‘Ρ‚ΠΈΠ²Π° Π’Π΅Π½Ρ‚ΠΎΠ½Π° (Steve Tendon)). Помимо ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ Y- Valve Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈ прямой доступ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… (локальная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…) ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ InterBase-сСрвСру (Π² InterBase Classic-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹) ΠΈ ΠΊΠ°ΠΊΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для чтСния Π΄Π°Π½Π½ΠΎΠΉ ODS (Π² случаС, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ InterBase-сСрвСр ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ вСрсии ODS).

GUID (Global Unique Identifier) - Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. Под GUID ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ понимаСтся 128-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΡƒΠ½ΠΈΠΊΠ°ΠΏΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ получаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ GUID Π½Π° основС Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄Π°Ρ‚Ρ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ систСмных Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² процСссора ΠΈ матСринской ΠΏΠ»Π°Ρ‚Ρ‹. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ GUID позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΠΎΠ»ΠΎΠΌΡ‡ GUID ΠΌΠΎΠΆΠ΅ΠΌ Π±Ρ‹Ρ‚ΡŒ использован для ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, БОМ-сСрвСров).

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° InterBase

LOCK_MEM_SIZE

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² ibconfig

V4_LOCK_MEM_SIZE 98304

ANY_LOCK_MEM_SIZE 98304

ДСйствиС

LOCK_MEM_SIZE опрСдСляСт количСство памяти, выдСляСмый для Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ. Π’ случаС сСрвСра с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ Classic, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ выдСлСния памяти, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒΡΡ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°ΠΉΠΌΠ΅Ρ‚ всю ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π’ случаС SuperServer устанавливаСмый Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π±Π΅Π· пСрСзапуска сСрвСра. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ€ памяти, выдСляСмой для Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ€Π°Π²Π΅Π½ 98304 Π±Π°ΠΉΡ‚Π°ΠΌ.

ОбъяснСниС

Π’ΠΎ всСх вСрсиях InterBase, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ОБ VMS, ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ распрСдСлСния рСсурсов Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Π΅Π΄Π΅Ρ‚ InterBase (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ VMS InterBase ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΅Π³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ). Π’ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Classic Ρ‚Π°Π±Π»ΠΈΡ†Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ находится Π² совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ всСми сСрвСрными процСссами памяти. Π’ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ SuperServer Ρ‚Π°Π±Π»ΠΈΡ†Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ самого сСрвСрного процСсса.

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

Показания ΠΊ измСнСнию ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

ИзмСнСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ:

* Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ кСша страниц Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. КаТдая страница, помСщаСмая Π² кСш, блокируСтся ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π° страницы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ нСсколькими ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΌΠΎΠ³ΡƒΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ нСсколько Ρ€Π°Π· (этот ΠΏΡƒΠ½ΠΊΡ‚ относится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Classic).

* Π½Π° число ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. КаТдая транзакция ΠΈΠΌΠ΅Π΅Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ, которая Π΅Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚. Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для синхронизации Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ случаи, ΠΊΠΎΠ³Π΄Π° транзакция Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π°ΡΡŒ Π±Π΅Π· подтвСрТдСния (commit) ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚Π° (rollback).

* Π½Π° события. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ оповСщСния ΠΎ событиях основываСтся Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…. Число событий ΠΈ число ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… эти события, Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ.

SEMAPHORE COUNT

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² ibconfig

V4_LOCK_SEM_COUNT 32

ANY_LOCK_SEM_COUNT 32

ДСйствиС

Π’ систСмах, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ устанавливаСт число сСмафоров, доступных InterBase. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ сСмафоров ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ зависит ΠΎΡ‚ ОБ ΠΈ описываСтся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅:

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ сСмафоров ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

EPSON SEMAPHORES

10

М88К SEMAPHORES

10

UNIXWARE SEMAPHORES

10

NCR3000 SEMAPHORES

25

SCO_UN1X SEMAPHORES

25

sgi SEMAPHORES

25

IMP SEMAPHORES

25

DELTA SEMAPHORES

25

Ultrix SEMAPHORES

25

DGUX SEMAPHORES

25

DECOSF SEMAPHORES

16

Other UNIX

32

ОбъяснСниС

Π‘Π΅ΠΌΠ°Ρ„ΠΎΡ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΈ сообщСний ΠΎ событиях. ВСорСтичСски InterBase Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ малСнькоС количСство сСмафоров - 32 Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ достаточно.

Показания ΠΊ измСнСнию ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

Если Π² Ρ„Π°ΠΉΠ»Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° InterBase InterBase.log Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС ΠΎΠ± ошибкС "semaphores are exhausted", Ρ‚ΠΎ слСдуСт ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ количСство сСмафоров.