Vaatimukset: SQL Server -tietokannassa on taulukko (esim. lokitaulu, pyyntölokitaulu), joka vie hyvin suuren levytilan, ehkä satoja Gt, miten taulutilan käyttöä voi vähentää? Tietojen pakkaus (tilansäästö) voidaan ottaa käyttöön erittäin toistuvalle tekstille (esim. HTML, JSON, lokit).
RIVIPAKKAUS
Pakkaus muuttaa datan fyysistä tallennustilaa, mutta ei datan loogista rakennetta. Viivan puristusprosessi:
Tunnista kunkin sarakkeen tietotyyppi ja muunna se muuttuvan pituudeksi Lopuksi tallennustilapyyntöjen määrä supistetaan todelliseen kysyntään Pakkauksen jälkeen kunkin sivun tallennetun datan määrä kasvaa Pakkauksen jälkeen vähennä metatietojen määrää Esimerkiksi, jos sarakkeen tietotyyppi on smallint, järjestelmä varaa oletuksena 2 tavua Mutta todellisuudessa käytetään vain 1 tavua tilaa, ja jos pakkaus on päällä taulukossa, se voidaan varata tarpeen mukaan
SIVUN pakkaus
Sivun pakkaus suorittaa lisätoimintoja rivien pakkaamisen parantamiseksi Päätoiminnot: rivin pakkaus, etuliitteen pakkaus, sanakirjan pakkaus
CPU:n kulutus: PAGE-pakkaus > rivipakkaus
Testi
Luo uudet Users1- ja Users2-taulukot, molemmat lisäävät 100 000 tietoa, ja sql-skripti on seuraava:
Taulukon tilan täyttymisen näkemiseksi, jotka kaikki ovat 3,27 MB, komento on seuraava:
Kuten alla on esitetty:
Users2-taulukon pakkaustilan tarkasteluun komento on seuraava:
Kuten alla on esitetty:
sp_estimate_data_compression_savingsArvioi, kuinka paljon säästöjä voi syntyä, kun otat käyttöön taulukot tai osiot riveille, sivuille, sarakevarastoille, sarakevarastoille tai XML-pakkauksille. Käsky on seuraava:
Tulos on seuraava:
object_name schema_name index_id partition_number size_with_current_compression_setting(KB) size_with_requested_compression_setting(KB) sample_size_with_current_compression_setting(KB) sample_size_with_requested_compression_setting(KB) Users2 dbo 1 1 3368 1296 3448 1328
size_with_current_compression_setting (KB) 3368 KB Indeksi vie ≈ 3,29 MB nykyisillä pakkausasetuksilla size_with_requested_compression_setting (KB) 1296 KB Arvioitu pinta-ala ≈ 1,27 MB, jos otat käyttöön pyytämäsi uuden pakkausmenetelmän, kuten PAGE tai ROW. Sivun pakkauksen suorittamiseksi komento on seuraava:
Vaikutusten vertailu:Users2-taulukko on 3,27 MB ennen pakkausta ja 1,23 MB pakkausta, kuten alla olevassa kuvassa näkyy:
Visualisointi on seuraava:
Viittaus:
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä. |