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

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

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

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСм Π½Π° Π±Π°Π·Π΅ Π‘Π£Π‘Π” являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ сСрвСра. Учитывая это, ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ сСрвСра Yaffil большоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ исходного ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ срСдства Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»ΠΈΠ½Π³Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

Π’ сСрвСрС Yaffil исправлСно большоС число критичСских ошибок, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… приводят ΠΊ ΠΏΠΎΡ€Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсиях InterBase Ρ‚Π°ΠΊΠΈΠ΅ опасныС ситуации, ΠΊΠ°ΠΊ ΠΏΠΎΡ€Ρ‡Π° памяти (вслСдствиС ошибки Π² ΠΊΠΎΠ΄Π΅ сСрвСра, Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ UDF ΠΈΠ»ΠΈ испорчСнных ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π‘Π”), ΠΏΡ€ΠΎΡ‚Π΅ΠΊΠ°Π»ΠΈ внСшнС Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€. ΠΏΠΎΠΊΠ° Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Π±Ρ‹Π»Π° Π½Π΅ΠΏΠΎΠΏΡ€Π°Π²ΠΈΠΌΠΎ испорчСна.

Ошибка ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π² Yaffil, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡƒ останову сСрвСра с ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдних ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‰ΠΈΡ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ.

Π’ Yaffil, ΠΊΠ°ΠΊ ΠΈ Π² InterBase 7.0, исправлСна Π΄Ρ‹Ρ€Π° Π² бСзопасности, связанная с использованиСм Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† для получСния доступа ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ систСмы. Π’Π°ΠΊΠΆΠ΅ Π² Yaffil исправлСна ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Π°Ρ ошибка, связанная с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ структурированных ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ (SEH) Win32 API

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ особСнности сСрвСра Yaffil

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΡΡ‚ΡŒ сСрвСра Π‘Π£Π‘Π” для использования Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ опрСдСляСт ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ сСрвСр ΠΌΠΎΠΆΠ΅Ρ‚ нСсти Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π½ΡƒΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² количСствС ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ количСствС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, выполняСмых Π² Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. К соТалСнию, скоростныС характСристики Π»ΠΈΠ½Π΅ΠΉΠΊΠΈ сСрвСров InterBase часто ΡƒΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ показатСлям ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ MSSQL ΠΈΠ»ΠΈ Sybase SQL Anywhere. По ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Yaffil Π΄Π°Π»Π΅ΠΊΠΎ ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°Π΅Ρ‚ своих Π°Π½Π°Π»ΠΎΠ³ΠΎΠ² ΠΈΠ· ΠΊΠ»ΠΎΠ½Π° InterBase. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ самых запросов Yaffil Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² 2-3 Ρ€Π°Π·Π° быстрСС, Ρ‡Π΅ΠΌ InterBase 6.0 ΠΈ Firebird 1.0. Π’Π°ΠΊΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ достигнуты благодаря многочислСнным ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠΎΠ΄Π°, большоС число критичСских Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² пСрСписаны Π½Π° ассСмблСрС Ρ…86 ΡƒΠ±Ρ€Π°Π½Ρ‹ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ запросов

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ - своСго Ρ€ΠΎΠ΄Π° "ΠΌΠΎΠ·Π³" сСрвСра, ΠΈ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π΅Π³ΠΎ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. НСвСрно Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΏΠ»Π°Π½ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния запроса Π² тысячи Ρ€Π°Π·. Π—Π° врСмя своСй ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ ΠΎΡ‚ вСрсии InterBase 4.0, Π½Π΅ способной Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ явныС соСдинСния, ΠΈ Π΄ΠΎ послСдних вСрсий Π² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ InterBase Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Borland вносились измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотя ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΊ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ ΠΏΠ»Π°Π½ΠΎΠ² для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… случаСв, Π½ΠΎ часто нСпрСдсказуСмо ΡΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… запросах. НапримСр, Π² пятой вСрсии InterBase научился ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ соСдинСния Π² явном синтаксисС ANSI SQL, Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ способ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ индСксов Π² рядС случаСв ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ» ΠΊ катастрофичСскому ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния запросов. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ нСприятности появились Π² вСрсии 6.0, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ пСрСнСсти свои систСмы Π½Π° ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ.

ΠŸΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π² большоС число ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Ρ… случаСв с ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ InterBase вСрсий 4.x, 5.x ΠΈ 6.x, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Yaffil внСсли ряд ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ примСнСния Ρ€ΡƒΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Π½ΠΎΠ² ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π½Π° Yaffil со старых вСрсий InterBase случаСв ΡƒΡ…ΡƒΠ΄ΡˆΠ΅Π½ΠΈΡ автоматичСских ΠΏΠ»Π°Π½ΠΎΠ² практичСски Π½Π΅ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ.

Однако Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ планирования Π½Π΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, Yaffil прСдоставляСт большС возмоТностСй для этого.

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Yaffil.

Π’Ρ‹Π±ΠΎΡ€ индСкса с мСньшим числом ΠΏΠΎΠ»Π΅ΠΉ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ индСкса с большим числом ΠΏΠΎΠ»Π΅ΠΉ

Π­Ρ‚ΠΎΡ‚ случай часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ имССтся большоС количСство индСксов, Π² Ρ‚ΠΎΠΌ числС составных. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Interbase/Firebird всСгда пытался Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ индСкс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ мноТСство ΠΏΠΎΠ»Π΅ΠΉ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ сущСствовал Π±ΠΎΠ»Π΅Π΅ быстрый ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ индСкс. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Yaffil автоматичСски Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π΄Π°Π½Π½ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π’Π°Π±Π»ΠΈΡ†Π° ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΏΠΎΠ»Π΅ΠΉ Table 1 (Fl, F2, F3) На Π½Π΅Π΅ созданы Ρ‚Ρ€ΠΈ индСкса: IDX_F1(F1), IDX_F1_F2(F1,F2), IDX_F1_F2_F3(F1,F2,F3) ВыполняСм запрос:

select * from Tablel where Fl = ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ»Π°Π½Ρ‹ для использования индСксов: Interbase 6.5/FireBird 1.0:

PLAN (Π’ INDEX (IDX_F1_F2_F3))

Yaffil:

PLAN (T INDEX (IDX_F1))

Interbase 6.5/FireBird 1.0 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ индСкс с ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ количСством ΠΏΠΎΠ»Π΅ΠΉ, хотя ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ СдинствСнный индСкс ΠΏΠΎ полю F1, ΠΊΠ°ΠΊ это ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Yaffil. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ распространСнная ошибка, приводящая ΠΊ замСдлСнию выполнСния запроса, ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±Π΅Π· явного планирования достаточно слоТно.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСкс с Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ сСгмСнтами, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌΠΈ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ ΠΈ сортировкой ΠΏΠΎ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ

Π­Ρ‚ΠΎΡ‚ случай Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° дСлаСтся ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ полю, Π° сортировка - ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, ΠΏΡ€ΠΈ этом имССтся индСкс ΠΏΠΎ ΠΎΠ±ΠΎΠΈΠΌ полям. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠΏΡƒΡΡ‚ΡŒ сущСствуСт Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΏΠΎΠ»Π΅ΠΉ T(F1,F2,F3), Π΅ΡΡ‚ΡŒ индСксы Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ сочСтания ΠΏΠΎΠ»Π΅ΠΉ: Π½Π° ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅ IDX_F1(F1), Π½Π° Π΄Π²Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… поля IDX_F1_F2(F1,F2), Π½Π° всС Ρ‚Ρ€ΠΈ поля IDX_F1_F2_F3(F1,F2,F3).

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ запрос ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°:

select * from T where Fl=.. order by F2

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΏΠ»Π°Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°:

FireBird/InterBase 6.5:

PLAN SORT(Π’ INDEX (IDX_F1_F2_F3))

Yaffil:

PLAN (T ORDER (IDX_F1))

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ индСксов с сильно Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‰Π΅ΠΉΡΡ ΡΠ΅Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠΏΡƒΡΡ‚ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΏΠΎΠ»Π΅ΠΉ T(F1,F2,F3) с индСксами Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ»Π΅ IDX_Fl(Fl), IDX_F2(F2) ΠΈ IDX_F3(F1). ΠŸΡƒΡΡ‚ΡŒ здСсь F1 являСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ»Π΅ΠΌ (ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€), a F2 - Π½Π΅ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ запрос:

select * from Π’ where Fl = ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€! and F2 = ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€2 ...

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ»Π°Π½Ρ‹: FireBird/InterBase 6.5:

PLAN (Π’ INDEX (IDX_F1, IDX_F2))

Yaffil:

PLAN (Π’ INDEX (IDX_F1))

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Yaffil всСгда ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ индСксы с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ сСлСктивности.

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² качСствС ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² ΠΎΡ‚Π±ΠΎΡ€Π° индСксов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠ΅Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Π½ΠΎ ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ условий, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ограничСниях. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "вСс" ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ "=" большС, Ρ‡Π΅ΠΌ "вСс" ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ "<" ΠΈ ">".

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ сСтСвого Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, сСрвСр Π‘Π£Π‘Π” устанавливаСтся Π½Π΅ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ вмСстС с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ. ΠŸΡ€ΠΈ этом Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° сСрвСра ΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ сСти, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, насколько ΠΌΠΎΡ‰Π½Ρ‹ΠΉ сСрвСр установлСн.

ОбъСм сСтСвого Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Yaffil Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ Π·Π° счСт Π±ΠΎΠ»Π΅Π΅ эффСктивной ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎΠ»Π΅ΠΉ Ρ‚ΠΈΠΏΠ° VARCHAR, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ фактичСской Π΄Π»ΠΈΠ½Ρ‹, Π° Π½Π΅ объявлСнной Π² описании Ρ‚ΠΈΠΏΠ°. АналогичноС ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ Π΅ΡΡ‚ΡŒ Π² Borland InterBase, начиная с вСрсии 6.5.

ЭффСктивная Ρ€Π°Π±ΠΎΡ‚Π° с Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ сортировки

Π’ сСрвСрС InterBase сортировка всСгда выполняСтся с использованиСм Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², нСзависимо ΠΎΡ‚ количСства доступной памяти. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния/записи Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ Π΄ΠΈΡΠΊΠΎΠ²ΡƒΡŽ подсистСму, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π° скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвСра, особСнно ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… соСдинСний интСнсивно ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΊ диску. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сСрвСр Yaffil ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ сортировки с Ρ„Π»Π°Π³ΠΎΠΌ FHJE_ATTRIBUTE_TEMPORARY, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ сброс кэш-Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² Π½Π° диск ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ достаточного объСма кэш-памяти.

ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ большого количСства ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти для сСрвСра Windows NT, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ выполняСтся Yaffil, ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ кэша Π½Π° использованиС памяти. ΠŸΡ€ΠΈ этом ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ памяти Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡƒΡŽ Ρ„ΠΈΠ·ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ кэш вмСсто прСдоставлСния Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ прилоТСниям. Π—Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ настройки ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ LargeSystemCache ΠΊΠ»ΡŽΡ‡Π° систСмного рССстра

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management.

Для сСрвСра InterBase рСкомСндуСтся Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² 1. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ вступило Π² силу, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ систСму.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сСрвСрныС прилоТСния, Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ Microsoft SQL Server, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² 0 ΠΏΡ€ΠΈ своСй инсталляции, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ кэш.

ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Π°Ρ структура хранСния записСй

InterBase ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ эффСктивный способ хранСния записСй Π½Π° страницах Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ RLE (run length encoding - ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ) ΠΏΡ€ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π° счСт ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… InterBase ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌΠΈ. НСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ являСтся ΠΎΡ‡Π΅Π½ΡŒ простым, ΠΎΠ½ Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов ΠΏΡ€ΠΈ записи ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° страницС.

Π’ зависимости ΠΎΡ‚ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ нСцСлСсообразной. Наибольший эффСкт достигаСтся ΠΏΡ€ΠΈ сТатии "хвостов" ΠΈΠ· ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… тСкстовых строк (Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… CHAR ΠΈ VARCHAR), Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ нСтСкстовыС Π΄Π°Π½Π½Ρ‹Π΅ практичСски нСсТимаСмы.

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