π ΠΠ°ΠΊ ΡΠΆΠ°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ MS SQL: ΡΠΎΠ²Π΅ΡΡ ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ
Π‘ΠΆΠ°ΡΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² MS SQL ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΆΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΈΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΠΉ.
ΠΠ»Ρ ΡΠΆΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ALTER TABLE Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ DATA_COMPRESSION:
ALTER TABLE Π½Π°Π·Π²Π°Π½ΠΈΠ΅_ΡΠ°Π±Π»ΠΈΡΡ REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = ROW);
ΠΡΠΎ ΡΠΆΠ°ΡΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΎ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΡΡΠΎΠΊΠ°ΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ ΡΠΌΠ΅Π½ΡΡΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ Ρ ΡΠ°Π½ΠΈΠΌΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ»Ρ ΡΠΆΠ°ΡΠΈΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ COMPRESSION Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ BACKUP:
BACKUP DATABASE Π½Π°Π·Π²Π°Π½ΠΈΠ΅_Π±Π°Π·Ρ_Π΄Π°Π½Π½ΡΡ
TO Π΄ΠΈΡΠΊ = 'C:\ΠΏΡΡΡ\ΠΊ\ΡΠ°ΠΉΠ»Ρ.bak' WITH COMPRESSION;
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΈ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΠΌΠ΅ΡΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠ΅.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠΆΠ°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ MS SQL
Π‘ΠΆΠ°ΡΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΠΌΠ΅ΡΡΠ°. Π MS SQL ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΠΆΠ°ΡΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΈ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ .
1. Π‘ΠΆΠ°ΡΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ²
ΠΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΆΠ°ΡΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ MS SQL Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΆΠ°ΡΠΈΠΈ ΡΠ°Π±Π»ΠΈΡ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ². ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΆΠ°ΡΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ROW ΠΈ PAGE. Π‘ΠΆΠ°ΡΠΈΠ΅ ΡΡΡΠΎΠΊ (ROW) ΡΠΆΠΈΠΌΠ°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΡΠΎΠΊΡ Π΄Π°Π½Π½ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, Π° ΡΠΆΠ°ΡΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡ (PAGE) ΡΠΆΠΈΠΌΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΡΡΠ°Π½ΠΈΡ.
-- ΠΡΠΈΠΌΠ΅Ρ ΡΠΆΠ°ΡΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ
ALTER TABLE TableName REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = ROW);
-- ΠΡΠΈΠΌΠ΅Ρ ΡΠΆΠ°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°
ALTER INDEX IndexName ON TableName REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE);
2. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΌΡΡΠΎΡΠ°
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΌΡΡΠΎΡΠ°, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΆΠ°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ REBUILD ΠΈΠ»ΠΈ REORGANIZE Π΄Π»Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠ±ΡΠ°ΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΠΌΠ΅ΡΡΠΎ.
-- ΠΡΠΈΠΌΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ REBUILD Π΄Π»Ρ ΡΠΆΠ°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°
ALTER INDEX IndexName ON TableName REBUILD;
-- ΠΡΠΈΠΌΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ REORGANIZE Π΄Π»Ρ ΡΠΆΠ°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°
ALTER INDEX IndexName ON TableName REORGANIZE;
3. ΠΡΠΈΡΡΠΊΠ° ΠΆΡΡΠ½Π°Π»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
ΠΡΠ»ΠΈ Π²Π°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΡΠΎ ΠΎΡΠΈΡΡΠΊΠ° ΠΆΡΡΠ½Π°Π»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠΆΠ°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ ΠΆΡΡΠ½Π°Π»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ SHRINKFILE, ΡΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΆΡΡΠ½Π°Π»Π°.
-- ΠΠΏΠ΅ΡΠ°ΡΠΈΡ SHRINKFILE Π΄Π»Ρ ΡΠΆΠ°ΡΠΈΡ ΠΆΡΡΠ½Π°Π»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
DBCC SHRINKFILE (LogFileName, Size);
4. Π‘ΠΆΠ°ΡΠΈΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ
MS SQL ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΆΠΈΠΌΠ°ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π‘ΠΆΠ°ΡΠΈΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΠΉ ΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠΏΡΠΈΡ COMPRESSION ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ.
-- ΠΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΆΠ°ΡΠΎΠΉ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ
BACKUP DATABASE DatabaseName TO DISK = 'C:\Backup.bak' WITH COMPRESSION;
5. Π€ΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΆΠ°ΡΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΆΠ°ΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈΡΡ COMPACT. ΠΡΠ° ΡΡΠΈΠ»ΠΈΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
C:\> compact /CompactOS:always C:\Path\To\Database.mdf
C:\> compact /CompactOS:always C:\Path\To\Database.ldf
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ΠΆΠ°ΡΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ MS SQL ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΆΠ°ΡΠΈΡ ΡΠ°Π±Π»ΠΈΡ, ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΠΆΡΡΠ½Π°Π»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.