すいません、VB4しかやってないんです、VBAはやったけど(ぼそ)

なのにどうしろと? くるみサイズの脳みそしかないあやしいジャンガリアンベムスターがさすらう贖罪蹂躙(ゴシックペナルティ)

目次

Blog 利用状況

ニュース


片桐 継 は  
こんなやつ

かたぎり つぐ ってよむの

大阪生まれ河内育ちなんだけど
東京に住んでたりするの
和装着付師だったりするの
エセモノカキやってたりするの
VB系言語が得意だったりするの
SQL文が大好きだったりするの

正体は会った人だけ知ってるの

空気読まなくてごめんなさいなの


わんくまリンク

C#, VB.NET 掲示板
C# VB.NET掲示板

わんくま同盟
わんくま同盟Blog


WindowsでGo言語
WindowsでGo言語


ネット活動

日々の雑記は ココ

着物関係こっち 着物関連Blog
mixiの鍵はこれだっ! in mixi
ぴくま同盟:理事 in ぴんくま
いやー、もうね、il||li _| ̄|○ il||li

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

イベント活動

プログラムの活動

32.4GBの攻防戦→訂正→32.994GBの攻防戦

それは開発用サーバーのSQLServer2005で、ちょっと前から困っていたことのお話。

問題:ディスクは50GBしかないのに、msdbが33GBもある。そのせいで、テストモジュールを最低限まで削ってもテスト動かすとすぐに残り容量100MB以下に。うーん、でいんじゃらす。

なので、ちょっと本気を出して、msdbの圧縮について、対処することにした。

まずは原因となっているだろうテーブルの洗い出し。

SELECT isnull(sum(  p.rows ),0) as RowCounts,s.name as TableName
 FROM sys.partitions p
INNER JOIN sys.objects s ON s.object_id = p.object_id
LEFT JOIN  sys.allocation_units a ON  p.partition_id = a.container_id
 WHERE p.index_id  in(0,1) and p.rows is not null and a.type = 1
 group by s.name
 order by isnull(sum(  p.rows ),0) desc

で、msdbの全テーブルの行数をテーブルごとに列挙してみると、行数が800万件超えてるテーブルを発見

問題のテーブルは sysxmitqueue

ServiceBroker の処理キューを貯めておくところなんだけどどうやら未処理のままデータを溜め込んでいるらしい。そういや、このサーバーでBrokerのテストしたことあったなー。って、ずいぶん前だな、、つか、そのせいかorz

なので、さくっとBroker再構築

ALTER DATABASE [msdb] SET SINGLE_USER
  WITH ROLLBACK IMMEDIATE
GO

ALTER DATABASE [msdb] SET NEW_BROKER
  WITH ROLLBACK IMMEDIATE
GO

ALTER DATABASE [msdb] SET MULTI_USER
GO

で、その後、msdbを圧縮。おおっ!33GB→6MBに!

ディスクが空いた。一安心w

投稿日時 : 2008年12月2日 0:21

コメントを追加

# re: 32.4GBの攻防戦 2008/12/02 12:57 Chuki

>msdbを圧縮。おおっ!33GB→6MBに!
20%近くになるのか。結構すごいかも^^

# re: 32.4GBの攻防戦 2008/12/02 15:11 melt

33GB→0.006GBなので20%どころじゃ無いような……

でもタイトルから察するに600MBの間違いだったり?

# re: 32.4GBの攻防戦→訂正→32.994GBの攻防戦 2008/12/02 23:19 かたぎり

>ちゅきさん
>めるぽんさん

33GB→0.006GBで正解なの、。
なのでタイトルをなおしましたです。
数字苦手でごめんなさいです。

タイトル  
名前  
URL
コメント