{"id":131,"date":"2011-06-25T17:21:16","date_gmt":"2011-06-25T15:21:16","guid":{"rendered":"http:\/\/www.flip-design.de\/?p=131"},"modified":"2011-06-26T21:24:07","modified_gmt":"2011-06-26T19:24:07","slug":"komprimierung-von-partitionen","status":"publish","type":"post","link":"https:\/\/www.flip-design.de\/?p=131","title":{"rendered":"Komprimierung von Partitionen"},"content":{"rendered":"<p><a href=\"http:\/\/www.flip-design.de\/wp-content\/uploads\/2011\/04\/dbtrigger_scheme.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-66\" title=\"dbtrigger_scheme\" src=\"http:\/\/www.flip-design.de\/wp-content\/uploads\/2011\/04\/dbtrigger_scheme.png\" alt=\"\" width=\"129\" height=\"157\" \/><\/a>Datenbanken wachsen. Wenn der Speicherplatz knapp wird, k\u00f6nnen einzelne Tabellen komprimiert werden, jedoch sollte dies mit Vorsicht angegangen werden, denn wenn hoch frequentierte Tabellen komprimiert werden, kostet das unn\u00f6tig Zeit und CPU Ressourcen. Daher sollte diese Technologie eher bei partitionierten Tabellen zum Einsatz gebracht werden, wenn man \u00e4ltere und nicht h\u00e4ufig verwendete Daten von den aktuellen differenziert werden k\u00f6nnen. Die Partitionen k\u00f6nnen dann durch die Zeilen\/Seiten Komprimierung des SQL Servers komprimiert werden.<\/p>\n<p><em>Hinweis:<\/em><br \/>\nDieser Artikel bezieht sich auf die folgende Artikel in den Beispielen:<br \/>\n<a href=\"http:\/\/www.flip-design.de\/?p=129\">Patritionierung von bestehenden Tabellen<\/a><br \/>\n<a href=\"http:\/\/www.flip-design.de\/?p=47\">Partitionierung von SQL Server Tabellen<\/a><\/p>\n<p>Nimmt man das Beispiel &#8222;<a href=\"http:\/\/www.flip-design.de\/?p=129\">Patritionierung von bestehenden Tabellen<\/a>&#8220; als Grundlage und f\u00fcgt dort weitere Daten ein (pro Partition 2000 Zeilen):<br \/>\n<code>DECLARE @counter INT = 9<br \/>\nWHILE @counter &lt; 10000<br \/>\nBEGIN<br \/>\nINSERT INTO dbo.buchungen (uid, name, datum, wert) VALUES (@counter, 'Januar 2008', '20080308', '100');<br \/>\nINSERT INTO dbo.buchungen_Log (uid, buchungen_uid) VALUES (@counter, @counter);<br \/>\nSET @counter = @counter + 1<br \/>\nINSERT INTO dbo.buchungen (uid, name, datum, wert) VALUES (@counter, 'M\u00e4rz 2009', '20090308', '100');<br \/>\nINSERT INTO dbo.buchungen_Log (uid, buchungen_uid) VALUES (@counter, @counter);<br \/>\nSET @counter = @counter + 1<br \/>\nINSERT INTO dbo.buchungen (uid, name, datum, wert) VALUES (@counter, 'Februar 2010', '20100209', '100');<br \/>\nINSERT INTO dbo.buchungen_Log (uid, buchungen_uid) VALUES (@counter, @counter);<br \/>\nSET @counter = @counter + 1<br \/>\nINSERT INTO dbo.buchungen (uid, name, datum, wert) VALUES (@counter, 'Januar 2011', '20110120', '100');<br \/>\nINSERT INTO dbo.buchungen_Log (uid, buchungen_uid) VALUES (@counter, @counter);<br \/>\nSET @counter = @counter + 1<br \/>\nINSERT INTO dbo.buchungen (uid, name, datum, wert) VALUES (@counter, 'Januar 2012', '20120115', '300');<br \/>\nINSERT INTO dbo.buchungen_Log (uid, buchungen_uid) VALUES (@counter, @counter);<br \/>\nSET @counter = @counter + 1<br \/>\nEND <\/code><\/p>\n<p>Nun ergibt sich folgende Speicherbelegung (SQL Server Bericht, Speicherbelegung durch Partitionen):<br \/>\n<a href=\"http:\/\/www.flip-design.de\/wp-content\/uploads\/2011\/06\/partBeforeCompress1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-133\" title=\"partBeforeCompress\" src=\"http:\/\/www.flip-design.de\/wp-content\/uploads\/2011\/06\/partBeforeCompress1.png\" alt=\"\" width=\"721\" height=\"231\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2011\/06\/partBeforeCompress1.png 721w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2011\/06\/partBeforeCompress1-300x96.png 300w\" sizes=\"(max-width: 721px) 100vw, 721px\" \/><\/a><\/p>\n<p>Wenn nun die Partitionen durch folgendes Statement komprimiert werden &#8230;<br \/>\n<code>ALTER TABLE [dbo].[buchungen] REBUILD PARTITION = 1 WITH(DATA_COMPRESSION = ROW )<br \/>\nALTER TABLE [dbo].[buchungen] REBUILD PARTITION = 2 WITH(DATA_COMPRESSION = ROW )<br \/>\nALTER TABLE [dbo].[buchungen] REBUILD PARTITION = 3 WITH(DATA_COMPRESSION = ROW )<br \/>\nALTER TABLE [dbo].[buchungen] REBUILD PARTITION = 5 WITH(DATA_COMPRESSION = ROW )<\/code><\/p>\n<p>&#8230; ergibt sich folgendes Bild:<br \/>\n<a href=\"http:\/\/www.flip-design.de\/wp-content\/uploads\/2011\/06\/partAfterCompress.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-134\" title=\"partAfterCompress\" src=\"http:\/\/www.flip-design.de\/wp-content\/uploads\/2011\/06\/partAfterCompress.png\" alt=\"\" width=\"722\" height=\"230\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2011\/06\/partAfterCompress.png 722w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2011\/06\/partAfterCompress-300x95.png 300w\" sizes=\"(max-width: 722px) 100vw, 722px\" \/><\/a><\/p>\n<p>Gesamt ergibt das in diesem Beispiel ~100 KB an Speicherplatz-Gewinn. Die Komprimierung kann auch hervorragend durch den Assistenten des SMSS durchgef\u00fchrt werden.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Datenbanken wachsen. Wenn der Speicherplatz knapp wird, k\u00f6nnen einzelne Tabellen komprimiert werden, jedoch sollte dies mit Vorsicht angegangen werden, denn wenn hoch frequentierte Tabellen komprimiert werden, kostet das unn\u00f6tig Zeit und CPU Ressourcen. Daher sollte diese Technologie eher bei partitionierten &hellip; <a href=\"https:\/\/www.flip-design.de\/?p=131\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[18,9,3],"tags":[],"_links":{"self":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/131"}],"collection":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=131"}],"version-history":[{"count":8,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/131\/revisions"}],"predecessor-version":[{"id":138,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/131\/revisions\/138"}],"wp:attachment":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=131"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=131"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}