{"id":72,"date":"2007-05-18T20:10:08","date_gmt":"2007-05-18T18:10:08","guid":{"rendered":"http:\/\/blog.m-ri.de\/index.php\/2007\/05\/18\/ms-sql-abfragen-ob-es-noch-genug-plattenplatz-gibt\/"},"modified":"2007-05-18T20:10:30","modified_gmt":"2007-05-18T18:10:30","slug":"ms-sql-abfragen-ob-es-noch-genug-plattenplatz-gibt","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2007\/05\/18\/ms-sql-abfragen-ob-es-noch-genug-plattenplatz-gibt\/","title":{"rendered":"MS-SQL abfragen ob es noch genug Plattenplatz gibt"},"content":{"rendered":"<p>Kann man den MS-SQL Server abfragen ob es noch genug Plattenplatz gibt?<\/p>\n<p>Manche Operationen kosten sehr viel Platz, besonders wenn man Datenbanken umstrukturiert. Da kann es leicht sein, dass gleich 100% mehr Platz ben\u00f6tigt wird. Zum einen weil die Protokolldatei evtl. immens w\u00e4chst und zum zweiten weil einfach die Tabellen stark anwachsen weil zum Beispiel neue Indexe hinzukommen oder Spalten auf Unicode umgestellt werden.<\/p>\n<p>Kann man also irgendwie den freien, zur Verf\u00fcgung stehenden Platz ermitteln und entsprechende Berechnungen anstellen?<\/p>\n<p>Ja! Es geht.<\/p>\n<ol>\n<li>Ausgangspunkt ist hier zum einen die dokumentierte System Tabelle <a href=\"http:\/\/msdn2.microsoft.com\/en-us\/library\/aa260406(sql.80).aspx\">sysdatabases<\/a>, die den Namen der Datenbank, und den Namen physikalischen mdf-Datei\u00a0liefert.<\/li>\n<li>Nun ben\u00f6tigen wie noch die aktuelle Gr\u00f6\u00dfe, die wir ohne Probleme mit der Storedprocedure <a href=\"http:\/\/msdn2.microsoft.com\/en-us\/library\/ms176070.aspx\">sp_databases<\/a> ermitteln k\u00f6nnen, die Namen, die Gr\u00f6\u00dfe in KB und eine NULL Spalte zu dieser Datenbank liefert.<\/li>\n<li>Den dritten und letzten Baustein f\u00fcr die Aufgabe liefert die nicht dokumentierte Funktion <em>master..xp_fixeddrives<\/em>, die in der ersten Spalte den Laufwerkbuchstaben liefert und in der zweiten den freien Speicherplatz in MB.<\/li>\n<\/ol>\n<p>Wie man jetzt errechnet ob eine Gr\u00f6\u00dfen\u00e4nderung um 75% noch abgedeckt wird, bleibt dem Leser \u00fcberlassen.\u00a0Nett nicht! \ud83d\ude42<\/p>\n<p>\u2757 BTW: Diese Funktionen laufen verifiziert auf MS-SQL 2000 und auch auf MS-SQL 2005 Servern inkl. der Express-Edition.<\/p>\n<p>Link <a href=\"http:\/\/www.mssqlcity.com\/Articles\/Undoc\/UndocExtSP.htm\">Useful undocumented extended stored procedures<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kann man den MS-SQL Server abfragen ob es noch genug Plattenplatz gibt? Manche Operationen kosten sehr viel Platz, besonders wenn man Datenbanken umstrukturiert. Da kann es leicht sein, dass gleich 100% mehr Platz ben\u00f6tigt wird. Zum einen weil die Protokolldatei evtl. immens w\u00e4chst und zum zweiten weil einfach die Tabellen stark anwachsen weil zum Beispiel &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2007\/05\/18\/ms-sql-abfragen-ob-es-noch-genug-plattenplatz-gibt\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eMS-SQL abfragen ob es noch genug Plattenplatz gibt\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[3,15],"tags":[359,107],"class_list":["post-72","post","type-post","status-publish","format-standard","hentry","category-programmieren","category-sql","tag-sql","tag-sql-2005"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/72","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/comments?post=72"}],"version-history":[{"count":0,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/72\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=72"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=72"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=72"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}