Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†

ΠŸΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† Π² mySQL

Начиная с вСрсии 5.1 mySQL ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†. Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅? ΠŸΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (partitioning) β€” это Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† Π½Π° логичСскиС части ΠΏΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ критСриям.. На Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ для myISAM Ρ‚Π°Π±Π»ΠΈΡ†, это физичСски Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠΎ 3 Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡŽ (описаниС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ„Π°ΠΉΠ» индСксов, Ρ„Π°ΠΉΠ» Π΄Π°Π½Π½Ρ‹Ρ…). Для innoDB Ρ‚Π°Π±Π»ΠΈΡ† Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ – Ρ€Π°Π·Π½Ρ‹Π΅ пространства Ρ‚Π°Π±Π»ΠΈΡ† Π² Ρ„Π°ΠΉΠ»Π°Ρ… innoDB (Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ innoDB позволяСт Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†).

CREATE TABLE orders_range (
customer_surname VARCHAR(30),
store_id INT,
salesperson_id INT,
order_date DATE,
note VARCHAR(500)
) ENGINE = MYISAM
PARTITION BY RANGE( YEAR(order_date) ) (
PARTITION p_old VALUES LESS THAN(2008),
PARTITION p_2008 VALUES LESS THAN(2009),
PARTITION p_2009 VALUES LESS THAN(MAXVALUE)
);

Π§Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ? ΠŸΠ΅Ρ€Π²Π°Ρ Β«Ρ‚Π°Π±Π»ΠΈΡ†Π°Β» Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π° Β«Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹ΠΉΒ» ΠΏΠ΅Ρ€ΠΈΠΎΠ΄, Π΄ΠΎ 2008Π³ΠΎ Π³ΠΎΠ΄Π°, вторая β€” Π·Π° 2008ΠΉ Π³ΠΎΠ΄, ΠΈ Β«Ρ‚Ρ€Π΅Ρ‚ΡŒΡΒ» β€” всС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅.

Π‘Π°ΠΌΠΎΠ΅ вкусноС β€” запросы ΠΏΡ€ΠΈ этом ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ/ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ:

select * from orders_range where order_date=’2009-08-01′;

И Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ этом происходит:

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этого запроса Ρ€Π°Π±ΠΎΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ΄Ρ‚ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ с Β«ΠΏΠΎΠ΄Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉΒ» p_2008.

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

КакиС Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ прСимущСства?

Π“Π»Π°Π²Π½Ρ‹ΠΌ прСимущСством я Π±Ρ‹ Π½Π°Π·Π²Π°Π» Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ партиция с Β«ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈΒ» Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (Ρ‚.Π΅. послСдними, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто происходит Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°) ΠΈΠΌΠ΅ΡŽΡ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΈ ΠΊΠ°ΠΊ слСдствиС, ΠΌΠΎΠ³ΡƒΡ‚ постоянно находится Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти.

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

КакиС способы «раздСлСния» Π΄Π°Π½Π½Ρ‹Ρ… прСдоставляСт mySQL?

По Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

PARTITION BY RANGE (store_id) (
PARTITION p0 VALUES LESS THAN (10),
PARTITION p1 VALUES LESS THAN (20),
PARTITION p3 VALUES LESS THAN (30)
);

По Ρ‚ΠΎΡ‡Π½ΠΎΠΌΡƒ списку Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

PARTITION BY LIST(store_id) (
PARTITION pNorth VALUES IN (3,5,6,9,17),
PARTITION pEast VALUES IN (1,2,10,11,19,20)
)

Π—Π°Ρ‡Π΅ΠΌ, спроситС Π²Ρ‹? Π Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π»ΠΈΠ±ΠΎ исходя ΠΈΠ· сообраТСний ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ (Ρ‡Ρ‚ΠΎ Ρ‡Π°Ρ‰Π΅) Π»ΠΈΠ±ΠΎ исходя ΠΈΠ· сообраТСний ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ записи (Ρ€Π΅ΠΆΠ΅). БоотвСтствСнно, ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” это ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½Π° максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ количСство ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΉ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ 90% всСх Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ происходило Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ. И Ссли Ρƒ вас слоТная Π»ΠΎΠ³ΠΈΠΊΠ° Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ располоТСнныС Π² сСвСрных ΠΊΠ²Π°Ρ€Ρ‚Π°Π»Π°Ρ… Π³ΠΎΡ€ΠΎΠ΄Π°, ID ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ΄ΡƒΡ‚ Π² Ρ€Π°Π·Π½ΠΎΠ±ΠΎΠΉ) Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π΅ΡΡ‚ΡŒ смысл ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

PARTITION BY HASH(store_id)
PARTITIONS 4;

Π’Ρ‹ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ управляСтС ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, просто ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅, ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ полю ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ…Π΅Ρˆ ΠΈ сколько Β«ΠΏΠΎΠ΄Ρ‚Π°Π±Π»ΠΈΡ†Β» ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ. Π—Π°Ρ‡Π΅ΠΌ? Π“ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС происходит Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ полю. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях позволяСт Π΄ΠΎΡΡ‚ΠΈΠ³Π½ΡƒΡ‚ΡŒ Β«Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ разброса» ΠΈ ускорСния записи Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΠΎΡ‡Ρ‚ΠΈ Ρ‚ΠΎ ΠΆΠ΅ самоС Ρ‡Ρ‚ΠΎ ΠΈ HASH, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ β€” ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ.

PARTITION BY KEY(s1)
PARTITIONS 10;

Π’.Π΅. Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ полю происходит максимально эффСктивно.

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

НСт Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ партицирования. Π­Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Π½Ρ‹Π΅ столбцы (поля) находятся Π² Ρ€Π°Π·Π½Ρ‹Ρ… Β«ΠΏΠΎΠ΄Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…Β». ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ½ΠΎΠ³Π΄Π° это Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ этого ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡƒΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ Π½Π΅ Ρ‚Π°ΠΊ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ: Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½Π° Π΄Π²Π΅, связав ΠΈΡ… ΠΏΠΎ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ. Если Π²Π°ΠΌ совсСм хочСтся красоты β€” ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎ Π½ΠΈΠΌ VIEW, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ старыС части ΠΊΠΎΠ΄Π°.

Π—Π°Ρ‡Π΅ΠΌ это Π΄Π΅Π»Π°Ρ‚ΡŒ? НапримСр, Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Π³Π΄Π΅ Ρƒ вас Π² основном числа ΠΈ Π΄Π°Ρ‚Ρ‹, Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅ VARCHAR (255) для ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° порядок Ρ€Π΅ΠΆΠ΅ Ρ‡Π΅ΠΌ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ поля. Π’ случаС Ссли Π΅Π³ΠΎ вынСсти Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ фиксированный Ρ€Π°Π·ΠΌΠ΅Ρ€ строки (mySQL смоТСт ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π½ΡƒΠΆΠ½ΠΎΠΉ строки ΠΏΠΎ индСксу Π² Ρ„Π°ΠΉΠ»Π΅ Π΄Π°Π½Π½Ρ‹Ρ…). Π’Π°Π±Π»ΠΈΡ†Π° станСт Π±ΠΎΠ»Π΅Π΅ устойчивой ΠΊ сбоям Π² случаС Π²Π½Π΅ΡˆΡ‚Π°Ρ‚Π½Ρ‹Ρ… ситуаций (ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΠΈΠ·-Π·Π° фиксированного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° строки). Ну ΠΈ сущСствСнно ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡΡ сам Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

И заканчивая ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±ΠΎΠ»Π΅Π΅ Β«Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎΒ» партицирования Ρ‚Π°Π±Π»ΠΈΡ† β€” помСсячно. Π’Π°ΠΊ ΠΊΠ°ΠΊ LIST/RANGE ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ цСлочислСнныС значСния, Ρ‚ΠΎ Π½Π°Π΄ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ исхитрится:

PARTITION BY RANGE( TO_DAYS(order_date) ) (
PARTITION y2009m1 VALUES LESS THAN( TO_DAYS(‘2009-02-01’) ),
PARTITION y2009m2 VALUES LESS THAN( TO_DAYS(‘2009-03-01’) ),
PARTITION y2009m3 VALUES LESS THAN( TO_DAYS(‘2009-04-01’) )
);

PS: Π’ mysql всСгда приходится Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Β«ΠΈΡΡ…ΠΈΡ‚Ρ€ΠΈΡ‚ΡŒΡΡΒ», Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ скучно с Π½Π΅ΠΉ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΊΠΎΠ³Π΄Π°, Π° ΠΌΡ‹ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ останСмся Π±Π΅Π· Ρ€Π°Π±ΠΎΡ‚Ρ‹ πŸ™‚

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘Π΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† Π² Oracle Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†

Одним ΠΈΠ· эффСктивных способов ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… являСтся сСкционированиС Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ индСксов. Рассмотрим Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сСкционирования ΠΈ ΠΈΡ… особСнности

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ сСкционированных Ρ‚Π°Π±Π»ΠΈΡ† Π² Oracle

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

Π—Π°Π΄Π°Ρ‡ΠΈ, Ρ€Π΅ΡˆΠ°Π΅ΠΌΡ‹Π΅ сСкционированиСм

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΡΠ΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π½Π°Π΄ΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдполагаСтся Ρ€Π΅ΡˆΠΈΡ‚ΡŒ

ΠšΠ»ΡŽΡ‡ сСкционирования

Π£Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ столбСц Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ позволяСт запрос:

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ сСкционирования Ρ‚Π°Π±Π»ΠΈΡ†

Π‘Π΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ ΠΈ индСксами

Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ сСкционирования, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, опрСдСляСт ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сСкционирования. Π’ настоящСС врСмя ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сСкционирования Ρ‚Π°Π±Π»ΠΈΡ†:

ПослСдниС Ρ‚Ρ€ΠΈ появились Π² Oracle 11g. вмСстС с Ρ‚Π΅ΠΌ послСдниС Π΄Π²Π° Ρƒ нас ΠΏΠΎΠΊΠ° Π½Π΅ нашли большого примСнСния.

Π‘Π΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Range ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ ΠΊΠ»ΡŽΡ‡Π°

Π’ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ сСкционирования ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Range ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΄Π²Π° Π²ΠΈΠ΄Π° сСкционирования: ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ Π΄Π°Ρ‚ ΠΈ ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π‘Π΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Range ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ Π΄Π°Ρ‚

ΠŸΡ€ΠΈ сСкционировании этим ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π½Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ сСкционированиС ΠΏΠΎ дням, мСсяцам ΠΈ ΠΏΠΎ Π³ΠΎΠ΄Π°ΠΌ. Π‘Π΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этим ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ HISTLG Π² схСмС AIF. ΠšΠ»ΡŽΡ‡ΠΎΠΌ сСкционирования выступаСт столбСц updated (Π΄Π°Ρ‚Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ строки), ΠΏΡ€ΠΈ этом сСкции ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ с шагом сСкций Π² ΠΎΠ΄ΠΈΠ½ мСсяц. Команда создания сСкционированной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ create ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

Π£Π²ΠΈΠ΄Π΅Ρ‚ΡŒ сСкции Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ запросу:

А содСрТимоС сСкции ΠΏΠΎ запросу:

Π‘Π΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ RANG ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π‘Π΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° сСкционированиС ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ Π΄Π°Ρ‚, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вмСсто ΠΊΠ»ΡŽΡ‡Π° ΠΏΠΎ Π΄Π°Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡ ΠΏΠΎ столбцу, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΌΡƒ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ΅ распрСдСлСниС ΠΏΠΎ всСму Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ). Для этого Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ столбСц с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. Рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ AIF.HISTLG, сСкционированной Π²Ρ‹ΡˆΠ΅ ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ Π΄Π°Ρ‚. Π’ качСствС ΠΊΠ»ΡŽΡ‡Π° сСкционирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ столбСц ISN с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ значСниями. Команда создания Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†

Π³Π΄Π΅ PARTITION BY RANGE (ISN) Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ сСкционировании no RANGE ΠΏΡ€ΠΈ ΠΊΠ»ΡŽΡ‡Π΅ сСкционирования ISN, ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» создания сСкции Ρ‡Π΅Ρ€Π΅Π· 1000 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ сСкции Π² сСкционированной Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Range

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ создании сСкционированной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ нСпростой вопрос: ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ сСкции. Π”ΠΎ Oracle 11g Π±Ρ‹Π»ΠΎ Ρ‚Ρ€ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° создания Π½ΠΎΠ²ΠΎΠΉ сСкции.

Π€Ρ€Π°Π·Π° UPDATE GLOBAL INDEXES обСспСчиваСт ΠΈΡΠΏΡ€Π°Π²Π½ΠΎΡΡ‚ΡŒ индСксов послС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Split.

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

Π’ Oracle 11g появилась новая Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ автоматичСского создания сСкций с использованиСм ΠΏΡ€ΠΈ создании Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ„Ρ€Π°Π·Ρ‹ INTERVAL (Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ называСтся ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΡŒΠ½ΠΎΠ΅ сСкционированиС Interval Partitioning). Π’ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ создании сСкций ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Range ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρƒ Π΄Π°Ρ‚ с использованиСм Ρ„Ρ€Π°Π·Ρ‹ Interval ΠΊΠΎΠΌΠ°Π½Π΄Π° создания сСкционированной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π²ΠΈΠ΄:

Π³Π΄Π΅ Ρ„Ρ€Π°Π·Π° INTERVAL(1000) Π·Π°Π΄Π°Π΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ автоматичСского создания сСкции Ρ‡Π΅Ρ€Π΅Π· 1000 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ISN.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² Oracle 11g Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ create создания сСкционированной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ сущСствСнно мСньшСС число строк, Π° ΠΎ создании Π½ΠΎΠ²ΠΎΠΉ сСкции своСврСмСнно позаботится Oracle.

Π‘Π΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ списку ΠΊΠ»ΡŽΡ‡Π΅ΠΉ LIST

Π”Ρ€ΡƒΠ³ΠΈΠ΅ стандартныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ сСкционирования ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ LIST ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ‹ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… источниках.

Π₯Сш-сСкционированиС HASH

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли Π² качСствС ΠΊΠ»ΡŽΡ‡Π° сСкционирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ столбСц, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΠΌΠ΅Π΅ΠΌ ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ΅ распрСдСлСниС значСния столбца (малая ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ), Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ…Π΅Ρˆ-сСкционирования Π½Π΅ цСлСсообразно. ΠŸΡ€ΠΈ этом число сСкций Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ особого значСния, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС значСния ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ столбца «свалятся» Π² ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ сСкции.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π£Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ сСкций Π² mb ΠΏΠΎ всСм ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ запросу:

БоставноС сСкционированиС

БистСмноС сСкционированиС (system partitioning)

Появилось Π² Oracle 11 g ΠΈ примСняСтся, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, для Ρ‚Π°Π±Π»ΠΈΡ†, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сСкционированы Π½ΠΈΠΊΠ°ΠΊΠΈΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. Π’ этом ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Oracle сам управляСт, ΠΊΠ°ΠΊΡƒΡŽ строку Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² ΠΊΠ°ΠΊΡƒΡŽ ΡΠ΅ΠΊΡ†ΠΈΡŽ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ. Для этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ просто Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ сСкций, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сСкции Π 1, Π 2, Π Π—:

Π£Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½Π° сСкции ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ запросу:

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

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Partitioned Tables and Indexes

SQL Server ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ сСкционированиС Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ индСксов. Π”Π°Π½Π½Ρ‹Π΅ сСкционированных Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ индСксов дСлятся Π½Π° Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π°Π½Π½Ρ‹Π΅ ΡΠ΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ, поэтому Π³Ρ€ΡƒΠΏΠΏΡ‹ строк ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ сСкциями. ВсС сСкции ΠΎΠ΄Π½ΠΎΠ³ΠΎ индСкса ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°Π±Π»ΠΈΡ†Π° ΠΈΠ»ΠΈ индСкс Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Сдиная логичСская ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π°Π΄ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ запросов ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ. Π”ΠΎ вСрсии SQL Server 2016 (13.x); SP1 сСкционированныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ индСксы Π±Ρ‹Π»ΠΈ доступны Π½Π΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ выпускС SQL Server. БвСдСния ΠΎ функциях, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ выпусками SQL Server, см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ВозмоТности, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ выпусками SQL Server 2016.

SQL Server ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π΄ΠΎ 15 000 сСкций. Π’ вСрсиях, ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… SQL Server 2012 (11.x), количСство сСкций ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±Ρ‹Π»ΠΎ Ρ€Π°Π²Π½ΠΎ 1000.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° сСкционирования

Π‘Π΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΈΠ»ΠΈ индСксов ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ прСимущСства Π² управляСмости ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π­Ρ‚ΠΎ позволяСт быстро ΠΈ эффСктивно ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ подмноТСства Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½ΠΈΠΌ, сохраняя ΠΏΡ€ΠΈ этом Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, такая опСрация, ΠΊΠ°ΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· OLTP Π² систСму OLAP, выполняСтся Π·Π° сСкунды, Π° Π½Π΅ Π·Π° ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ ΠΈ часы, ΠΊΠ°ΠΊ Π² случаС нСсСкционированных Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ обслуТивания ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ быстрСС с ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ нСсколькими сСкциями. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ эффСктивны, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠ΄Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π½Π΅ со всСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько сСкций ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько сСкций индСкса.

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

Π’ процСссС сортировки Π΄Π°Π½Π½Ρ‹Ρ… для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π² SQL Server сначала проводится сортировка Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ сСкциям. Для ускорСния сортировки Π΄Π°Π½Π½Ρ‹Ρ… рСкомСндуСтся Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² сСкциях ΠΏΠΎ нСскольким ТСстким дискам, создав RAID. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, нСсмотря Π½Π° сортировку Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ сСкциям, SQL Server смоТСт ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ доступ ΠΊΠΎ всСм ТСстким дискам ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сСкции.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, примСняя Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ сСкций, Π° Π½Π΅ всСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ для Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ состязаниС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ примСнСния укрупнСния Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΊ сСкциям, Π·Π°Π΄Π°ΠΉΡ‚Π΅ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° LOCK_ESCALATION инструкции ALTER TABLE Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ AUTO.

Π‘Π΅ΠΊΡ†ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ индСкса ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΉ ( PRIMARY ) ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏΠ°Ρ…. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ использованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏ позволяСт Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ сСкции ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ уровням Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. ВсС ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ прСимущСства сСкционирования ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ нСзависимо ΠΎΡ‚ количСства ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏ ΠΈΠ»ΠΈ размСщСния сСкций Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏΠ°Ρ….

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ основныС понятия

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ относятся ΠΊ ΡΠ΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ индСксов.

Ѐункция сСкционирования

Π‘Ρ…Π΅ΠΌΠ° сСкционирования

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

Π’ Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… SQL Azure ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹.

Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† сСкционирования

Π’Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½Ρ‹ΠΉ индСкс

ИндСкс, созданный Π½Π° основС Ρ‚ΠΎΠΉ ΠΆΠ΅ схСмы сСкционирования, Ρ‡Ρ‚ΠΎ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π°. Когда Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈ Π΅Π΅ индСксы Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Ρ‹, SQL Server ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈ обслуТивании структуры сСкционирования ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ‚Π°ΠΊ ΠΈ индСксов быстро ΠΈ эффСктивно ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ сСкции. Для выравнивания с Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ индСксу Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ сСкционирования с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сСкционирования индСкса ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сущСствСнно Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ:

Π‘Π΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ кластСризованных индСксов

ΠŸΡ€ΠΈ сСкционировании кластСризованного индСкса столбСц сСкционирования Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π² ΠΊΠ»ΡŽΡ‡Π΅ кластСризации. ΠŸΡ€ΠΈ сСкционировании Π½Π΅ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ кластСризованного индСкса, Ссли столбСц сСкционирования Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ явно Π² ΠΊΠ»ΡŽΡ‡Π΅ кластСризации, SQL Server ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ добавляСт столбСц сСкционирования Π² список ΠΊΠ»ΡŽΡ‡Π΅ΠΉ кластСризованного индСкса. Если кластСризованный индСкс являСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ, для Π½Π΅Π³ΠΎ слСдуСт явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π·Π°Π΄Π°Ρ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ столбца сСкционирования Π² ΠΊΠ»ΡŽΡ‡Π΅ кластСризованного индСкса. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ кластСризованных индСксах ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ индСксов см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΡ€Π°Π²ΠΈΠ»Π° проСктирования кластСризованного индСкса.

Π‘Π΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ нСкластСризованных индСксов

ΠŸΡ€ΠΈ сСкционировании ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ нСкластСризованного индСкса столбСц сСкционирования Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π² ΠΊΠ»ΡŽΡ‡Π΅ индСкса. ΠŸΡ€ΠΈ сСкционировании Π½Π΅ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ нСкластСризованного индСкса SQL Server ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ добавляСт столбСц сСкционирования ΠΊΠ°ΠΊ Π½Π΅ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ (Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ) столбСц индСкса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ индСкса с Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ. Если столбСц сСкционирования ΡƒΠΆΠ΅ присутствуСт Π² индСксС, SQL Server Π΅Π³ΠΎ Π½Π΅ добавляСт. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ нСкластСризованных индСксах ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ индСксов см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ созданию нСкластСризованных индСксов.

НСвыровнСнный индСкс

ИндСкс, сСкционированный нСзависимо ΠΎΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π’. Π΅. индСкс ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ схСму сСкционирования ΠΈΠ»ΠΈ находится Π½Π΅ Π² Ρ‚ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅, Π³Π΄Π΅ находится базовая Ρ‚Π°Π±Π»ΠΈΡ†Π°. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½ΠΎΠ³ΠΎ сСкционированного индСкса ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… случаях:

УстранСниС сСкций

ΠŸΡ€ΠΎΡ†Π΅ΡΡ, Π² Ρ…ΠΎΠ΄Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ запросов обращаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ сСкциям Π² соотвСтствии с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠΌ запроса.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

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

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ процСссорных ядСр ΠΈ числа сСкций

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ максимальной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, рСкомСндуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ число сСкций ΠΈ процСссорных ядСр совпадало, Π½ΠΎ Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π»ΠΎ 64 (это максимальноС число ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… процСссоров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ SQL Server ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ).

ИспользованиС памяти ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΈ большом количСствС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… сСкций рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠžΠ—Π£ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 16 Π“Π‘. Если Ρƒ систСмы нСдостаточно памяти, Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ сбой инструкций языка ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (DML), инструкций языка описания Π΄Π°Π½Π½Ρ‹Ρ… (DDL) ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠ·-Π·Π° Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ памяти. Π’ систСмах с ΠžΠ—Π£ 16 Π“Π‘ ΠΈ большим количСством процСссов, интСнсивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ сбои ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π½Π° большом количСствС сСкций, ΠΈΠ·-Π·Π° Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ памяти. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‡Π΅ΠΌ большС Ρƒ вас памяти свСрх 16 ΠœΠ‘, Ρ‚Π΅ΠΌ мСньшС Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ SQL Server ΠΏΡ€ΠΈ построСнии сСкционированного индСкса ΠΈ Π΄Π°ΠΆΠ΅ Π½Π° саму Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ построСния. Π’Π°ΠΊΠΎΠ΅ случаСтся, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° индСкс Π½Π΅ Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½ со своСй Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ ΠΈΠ»ΠΈ со своим кластСризованным индСксом, Ссли Ρ‚Π°ΠΊΠΎΠΉ сущСствуСт Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Π’ этом случаС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сСрвСра index create memory. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Настройка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сСрвСра index create memory.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с сСкционированными индСксами

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

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

ΠŸΡ€ΠΈ сортировкС, выполняСмой ΠΏΡ€ΠΈ построСнии сСкционированных индСксов, SQL Server сначала создаСт для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сСкции ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ сортировки. Π—Π°Ρ‚Π΅ΠΌ Π»ΠΈΠ±ΠΎ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сСкции, Π»ΠΈΠ±ΠΎ Π² tempdb, Ссли Π·Π°Π΄Π°Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ индСкса SORT_IN_TEMPDB, производится построСниС Ρ‚Π°Π±Π»ΠΈΡ† сортировки. Для всСх Ρ‚Π°Π±Π»ΠΈΡ† сортировки трСбуСтся ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. ΠŸΡ€ΠΈ построСнии сСкционированного индСкса, Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½ΠΎΠ³ΠΎ со своСй Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ сортировки ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π·Π° Ρ€Π°Π·, экономно расходуя ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Однако ΠΏΡ€ΠΈ построСнии Π½Π΅Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½ΠΎΠ³ΠΎ сСкционированного индСкса Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ сортировки ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ достаточный объСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ. Π§Π΅ΠΌ большС число сСкций, Ρ‚Π΅ΠΌ большС трСбуСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· сСкций Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ сортировки составляСт Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 40 страниц, ΠΏΠΎ 8 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚ каТдая. НапримСр, для Π½Π΅Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½ΠΎΠ³ΠΎ сСкционированного индСкса, Ρ€Π°Π·Π±ΠΈΡ‚ΠΎΠ³ΠΎ Π½Π° 100 сСкций, потрСбуСтся объСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти для ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ сортировки 4 000 страниц (40*100). Если Ρ‚Π°ΠΊΠΎΠΉ объСм памяти доступСн, опСрация создания Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΡ‚Ρ€Π°Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Если ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠΉ объСм памяти нСдоступСн, опСрация построСния Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ошибкой. Для Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½ΠΎΠ³ΠΎ сСкционированного индСкса, Ρ€Π°Π·Π±ΠΈΡ‚ΠΎΠ³ΠΎ Π½Π° 100 сСкций, для сортировки потрСбуСтся всСго 40 страниц, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ сортировки ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Как для Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ для Π½Π΅Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½Ρ‹Ρ… индСксов ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ больший объСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Ссли SQL Server примСняСт стСпСни ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° для выполнСния Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° многопроцСссорном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Π§Π΅ΠΌ большС ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, Ρ‚Π΅ΠΌ большС трСбуСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. НапримСр, Ссли для SQL Server ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° 4, Ρ‚ΠΎ Π½Π΅Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½ΠΎΠΌΡƒ сСкционированному индСксу, содСрТащСму 100 сСкций, потрСбуСтся Ρ‚Π°ΠΊΠΎΠΉ объСм памяти, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ процСссора ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ 4 000 страниц, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ 16 000 страниц. Если сСкционированный индСкс Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½, трСбования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ΡΡ Π΄ΠΎ 40 страниц для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… процСссоров, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ 160 страниц (4*40). Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° индСкса MAXDOP ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ DBCC

ΠŸΡ€ΠΈ большСм количСствС сСкций Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ DBCC ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ увСличСния количСства сСкций.

Запросы

Запросы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ устранСния сСкций, ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΠΌΡƒΡŽ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с большим числом сСкций. Запросы, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ устранСния сСкций, ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ увСличСния количСства сСкций.

Запросы, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠ°ΠΊ TOP ΠΈΠ»ΠΈ MAX/MIN, Π² столбцах, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ столбца сСкционирования, ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ со сниТСниСм ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ сСкционировании, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ всС сСкции.

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

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎΠ± ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ сСкций ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ запросов см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π‘Π΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ индСксы.

ИзмСнСния Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΈ статистичСских вычислСниях Π²ΠΎ врСмя ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с сСкционированным индСксом

БвязанныС Π·Π°Π΄Π°Ρ‡ΠΈ

ЗаданияРаздСл
Описано, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сСкционирования ΠΈ схСмы сСкционирования ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΈΠ»ΠΈ индСксу.Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ сСкционированных Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ индСксов

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎ стратСгиям сСкционированных Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ индСксов ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ внСдрСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ PostgreSQL с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ партицирования Ρ‚Π°Π±Π»ΠΈΡ†

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ сцСнарий

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†
Π’Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Π³Π΄Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ хранятся Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ срСдС, ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Π°! Запросы проходят ΡˆΡƒΡΡ‚Ρ€ΠΎ, ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΈ ΠΈΡ… Π²Π²ΠΎΠ΄Π΅ практичСски Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½Π°. Π§Π΅Ρ€Π΅Π· нСсколько Π΄Π½Π΅ΠΉ/нСдСль/мСсяцСв Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… становится всё большС ΠΈ большС, ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ запросов замСдляСтся.

Π•ΡΡ‚ΡŒ нСсколько ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ вашСго прилоТСния ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Администратор Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (DBA) посмотрит ΠΈ прослСдит, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π±Ρ‹Π»Π° ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ настроСна. Он ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ индСксы, ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡŽ, ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π΄Π²ΠΈΠΆΠΊΠ° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π·Π΄ΠΎΡ€ΠΎΠ²Π°. МоТно Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… IOPS (Input/Output Operations Per second) Π½Π° EBS дискС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ дисковых ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΉ. Π­Ρ‚ΠΎ даст Π²Π°ΠΌ Π²Ρ‹ΠΈΠ³Ρ€Π°Ρ‚ΡŒ врСмя ΠΈ даст Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π³Π»Π°Π²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Π Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π²Ρ‹ ΠΏΠΎΠΉΠΌΡ‘Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π² вашСй Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡƒΠ·ΠΊΠΈΠΌ мСстом (botleneck).
Π’ Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ. Если Π²Ρ‹ смоТСтС ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ способ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ этой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ваши запросы Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ быстрСС, врСмя создания бэкапов ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡΡ, ΠΈ Π²Ρ‹ сэкономитС ΠΊΡƒΡ‡Ρƒ мСста. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ½Π° ΠΏΡ€ΠΎΠΏΠ°Π΄Ρ‘Ρ‚ Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠ»Π°Ρ‚ΡŒ мноТСство DELETE запросов, Π²Ρ‹Π·Π²Π°Π² созданиС Ρ‚ΠΎΠ½Π½ Π»ΠΎΠ³ΠΎΠ², ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡƒΡ‡Ρƒ рСсурсов Π΄Π²ΠΈΠΆΠΊΠ° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΌΡ‹ избавимся ΠΎΡ‚ старой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ эффСктивно, Π½ΠΎ Π½Π΅ потСряв Π΅Ρ‘ навсСгда?
Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PostgreSQL 9.2 Π½Π° Engine Yard. Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ΅Π½ git для установки plsh.

ΠŸΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†

ΠŸΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π’ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ ΠΎΠ΄Π½Ρƒ Π³ΠΈΠ³Π°Π½Ρ‚ΡΠΊΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈ Ρ€Π°Π·Π±Π΅ΠΉΡ‚Π΅ Π΅Ρ‘ Π½Π° ΠΊΡƒΡ‡Ρƒ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… β€” эти малСнькиС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ партициями ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ (child object). Π’Π°ΠΊΠΈΠ΅ дСйствия, ΠΊΠ°ΠΊ созданиС бэкапов, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ SELECT ΠΈ DELETE, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Ρ‹ с ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ всСми партициями. ΠŸΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΈΠ»ΠΈ экспортированы Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΌ запросом, Ρ‡Ρ‚ΠΎ свСдёт Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ.

ВСрминология

Начнём с Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Master Table (Главная Ρ‚Π°Π±Π»ΠΈΡ†Π°)

Π’Π°ΠΊΠΆΠ΅ имСнуСмая Master Partition Table, это шаблон, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π­Ρ‚ΠΎ обычная Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π½ΠΎ ΠΎΠ½Π° Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ нуТдаСтся Π² Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π΅ (ΠΎΠ± этом ΠΏΠΎΠ·ΠΆΠ΅). Π’ΠΈΠΏ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ являСтся ΠΎΠ΄ΠΈΠ½-ΠΊ-ΠΌΠ½ΠΎΠ³ΠΈΠΌ (one-to-many), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° главная Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈ мноТСство Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ….

ДочСрняя Ρ‚Π°Π±Π»ΠΈΡ†Π° (Child Table)

Π­Ρ‚ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ свою структуру (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, свой язык описания Π΄Π°Π½Π½Ρ‹Ρ… β€” Data Definition Language ΠΈΠ»ΠΈ DDL) ΠΎΡ‚ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ ΠΎΠ΄Π½ΠΎΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅. ИмСнно Π² Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… хранятся всС Π΄Π°Π½Π½Ρ‹Π΅. Π­Ρ‚ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ.

Partition Function

Partition function являСтся Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ, которая опрСдСляСт, какая ΠΈΠ· Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ запись. Главная Ρ‚Π°Π±Π»ΠΈΡ†Π° содСрТит Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ партицирования. Π•ΡΡ‚ΡŒ Π΄Π²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ для ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ записСй ΠΊ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ:
По значСниям Π΄Π°Π½Π½Ρ‹Ρ… – ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ этого являСтся Π΄Π°Ρ‚Π° Π·Π°ΠΊΠ°Π·Π° ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ. Когда Π·Π°ΠΊΠ°Π·Ρ‹ ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² Π³Π»Π°Π²Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, эта функция вызываСтся Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠΌ. Если Π²Ρ‹ создаётС ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ ΠΏΠΎ дням, каТдая дочСрняя партиция Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ всС Π·Π°ΠΊΠ°Π·Ρ‹ ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠΈΠ΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ дСнь. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ описываСтся Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.
По фиксированным значСниям – ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ этого являСтся гСографичСскоС ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊΠΎΠ΅, ΠΊΠ°ΠΊ ΡˆΡ‚Π°Ρ‚Ρ‹. Π’ этом случаС, Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 50 Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡˆΡ‚Π°Ρ‚Π° БША. Когда запросы INSERT ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² Π³Π»Π°Π²Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, функция сортируСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ ряд Π² ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†. Π­Ρ‚Π° мСтодология Π½Π΅ описываСтся Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΌ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ старых Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΠΎΡ€Π° Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ эти ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ

ДопущСния (Conventions)

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ выполняСмыС ΠΈΠ· ΠΏΠΎΠ΄ shell, root ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ прСфикс:
ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ выполняСмыС ΠΈΠ· ΠΏΠΎΠ΄ shell, non-root ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ postgres, ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ прСфикс:
ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ выполняСмыС Π²Π½ΡƒΡ‚Ρ€ΠΈ PostgreSQL Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π§Ρ‚ΠΎ Π²Π°ΠΌ потрСбуСтся

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PostgreSQL 9.2 Π½Π° Engine Yard. Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ΅Π½ git для установки plsh.

РСзюмС
CΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

Для этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΡ‹ создадим Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ для хранСния Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (cpu, memory, disk) Π³Ρ€ΡƒΠΏΠΏΡ‹ сСрвСров (server_id) ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΌΠΈΠ½ΡƒΡ‚Ρƒ (time).

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, имя time Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ time это ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π² PostgreSQL. Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… словах Date/Time ΠΈ ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ PostgreSQL.

Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° для Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

Когда функция ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ создана, Π² Π³Π»Π°Π²Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ Π²Π²ΠΎΠ΄Π°. Он Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ записи.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ»Π°Ρ‚ΡŒ строки Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ обслуТивания ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ

Ѐункция, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π½ΠΈΠΆΠ΅, Ρ‚ΠΎΠΆΠ΅ являСтся ΠΎΠ±ΠΎΠ±Ρ‰Π°ΡŽΡ‰Π΅ΠΉ ΠΈ позволяСт Π²Π°ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ОБ, ΠΈ имя
сТатого Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ эту Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ свСрху ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ языка plsh Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Π½ΠΈΠΆΠ΅. Π’Π°ΠΊΠΆΠ΅ слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² нашСй систСмС bash находится Π² /bin/bash.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Π½Π΅ ΠΏΡ€Π°Π²Π΄Π° Π»ΠΈ?

Настройка PostgreSQL ΠΈ OS

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ PLSH Π² PostgreSQL
Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ PLSH Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² PostgreSQL для запуска shell ΠΊΠΎΠΌΠ°Π½Π΄. Оно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² myschema.export_partition(text,text) для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ динамичСски ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ shell строки для запуска pg_dump. Из ΠΏΠΎΠ΄ root, запуститС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ

ΠŸΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ postgres ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Π»Π° ΠΏΠ°ΠΏΠΊΠ°, ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Ρ€ΡƒΠΏΠΏΠ° deployment ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠΌΠ΅Π»Π° доступ для чтСния этих Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ для развёртывания ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Engine Yard Cloud являСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ β€˜deploy’.

Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ PL/SH Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° plsh.

ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ обслуТивания ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ

Команда Π½ΠΈΠΆΠ΅ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ запуск partition_maintenance ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь Π² ΠΏΠΎΠ»Π½ΠΎΡ‡ΡŒ

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ cron jobs для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ postgres, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ crontab строка Π²Π΅Ρ€Π½Π°:

0 0 * * * /home/postgres/bin/pg_jobs/myschema_partition_maintenance

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сдСлана рСзСрвная копия ΠΏΠ°ΠΏΠΊΠΈ /db/partition_dump, Ссли Π²Ρ‹ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ инстансом Π½Π° Engine Yard Cloud. Если Π²Π°ΠΌ ΠΎΠΏΡΡ‚ΡŒ потрСбуСтся эта информация, Π²Π°ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Π½ΡƒΠΆΠ½Ρ‹ эти Ρ„Π°ΠΉΠ»Ρ‹ для восстановлСния старых ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ rsyncing (копирования) этих Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ сСрвСр для ΠΏΡƒΡ‰Π΅ΠΉ увСрСнности. ΠœΡ‹ считаСм, Ρ‡Ρ‚ΠΎ для Ρ‚Π°ΠΊΠΎΠ³ΠΎ архивирования ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ S3.
Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ обслуТиваниС вашСй Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ врСмя, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΡΠ»Π°Π±ΠΈΡ‚ΡŒΡΡ, зная, Ρ‡Ρ‚ΠΎ Π²Ρ‹ сдСлали Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ особСнноС: ΠΏΡ€ΠΎΠ²ΠΎΡ€Π½ΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, которая сама Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΈΠ΅Ρ‚Ρ‹!

Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ старыС ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ

Если вас Ρ‚ΠΎΠΌΠΈΡ‚ Ρ€Π°Π·Π»ΡƒΠΊΠ° ΠΏΠΎ старым Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ запрос Π½Π° комплаСнс-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ очутился Π½Π° вашСм Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ столС, Π²Ρ‹ всё Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ старыС ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ ΠΈΠ· систСмных Ρ„Π°ΠΉΠ»ΠΎΠ².
Для этого ΠΌΡ‹ направимся ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ /db/partition_dump Π½Π° вашСм локальном db сСрвСрС ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ postgres ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ этот Ρ„Π°ΠΉΠ» Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½, ΠΊ Π½Π΅ΠΌΡƒ ΠΎΠΏΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π°Ρ‚ΡŒ запросы ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· ΠΊΠΎΠ³Π΄Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ запустит ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ, эта старая партиция ΠΎΠΏΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ экспортирована.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ это Π² Ρ€Π°Π±ΠΎΡ‚Π΅

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ Π΄Π²Π΅ строки с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π΄ΠΎΡ‡Π΅Ρ€Π½ΡŽΡŽ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡŽ Π² дСйствии. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ psql сСссию ΠΈ запуститС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ? ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· запустили это, Π΄Π²Π΅ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Ρ‹Π»ΠΈ созданы. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² sql сообщСнии ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ создания Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ insert ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, выбирая ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ· Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΈΠΌΠ΅Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΉ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ. ΠœΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ это Π½Π΅ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ это унаслСдованная Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π° ΠΈΠ·-Π·Π° дСфиса, использованного ΠΌΠ΅ΠΆΠ΄Ρƒ Π³ΠΎΠ΄-мСсяц-дСнь.

ЗапускаСм обслуТиваниС Ρ‚Π°Π±Π»ΠΈΡ†

Π”Π²ΡƒΠΌ строкам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ внСсли Π±ΠΎΠ»Π΅Π΅ 15 Π΄Π½Π΅ΠΉ. ПослС Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ запуска обслуТивания ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ (ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· cron) Π΄Π²Π΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ экспортированы Π² ОБ, ΠΈ эти ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹ (dropped).
postgres$ /home/postgres/bin/pg_jobs/myschema_partition_maintenance

ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΌΡ‹ смоТСм ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΄Π²Π° экспортированных Ρ„Π°ΠΉΠ»Π°:

ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π²Π΅Ρ€Π½Ρ‘Ρ‚ Π²Π°ΠΌ 0 строк, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΄Π²Π΅ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ большС Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚.

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° старых ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΉ

Ссли Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ старыС Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ‚ΠΎ сначала gunzip, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ psql:

Если ΠΏΠΎΡΠ»Π°Ρ‚ΡŒ select Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ 1 строка β€” дочСрняя Ρ‚Π°Π±Π»ΠΈΡ†Π° восстановлСна.

Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ

Наши Ρ„Π°ΠΉΠ»Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… находятся Π½Π° ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ Π½Π° /db которая ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π° ΠΎΡ‚ нашСй root (β€˜/’) ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ.
Для дальнСйшСго ознакомлСния с PostgreSQL Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ.
Π”Π²ΠΈΠΆΠΎΠΊ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Π²Π΅Ρ€Π½Ρ‘Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ количСство строк Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† (всСгда 0 Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†) послС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ INSERT ΠΈΠ»ΠΈ UPDATE Π² Π³Π»Π°Π²Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ruby, Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, учитывая, Ρ‡Ρ‚ΠΎ pg Π΄ΠΆΠ΅ΠΌ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ значСния ΠΏΡ€ΠΈ отчётностях cmd_tuples. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ORM, Ρ‚ΠΎΠ³Π΄Π°, Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ, ΠΎΠ½ΠΈ подправят это ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.
НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ экспортированных ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΉ Π² /db/partition_dump, эти Ρ„Π°ΠΉΠ»Ρ‹ Π»Π΅ΠΆΠ°Ρ‚ Π²Π½Π΅ стандартного ΠΏΡƒΡ‚ΠΈ создания бэкапов Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….
ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ осущСствляСт INSERT Π² Π³Π»Π°Π²Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ DDL ΠΏΡ€Π°Π²Π° для создания Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†.
ΠŸΡ€ΠΈ осущСствлСнии INSERT Π² Π³Π»Π°Π²Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ нСбольшоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° функция Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°.
ΠŸΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ PostgreSQL. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с самой ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΈ бСзопасной вСрсиСй.
Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для ΠΌΠΎΠ΅ΠΉ ситуации, ваши трСбования ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ, ΠΊΠ°Π»Π΅Ρ‡ΠΈΡ‚ΡŒ, истСричСски ΡΠΌΠ΅ΡΡ‚ΡŒΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это для своих Ρ†Π΅Π»Π΅ΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *