rails:1679
From: "そめえだ" <someeda@g...>
Date: Mon, 25 Sep 2006 16:35:24 +0900
Subject: [rails:1679] Re: テーブルの容量測定の方法
そめえだ です。 > item = Item.find(:all, :conditions => ["customer_id = ? ", customer_id]) > ↑ここで「item」の容量を測定するようなメソッドがないかが知りたいです。 ActiveRecord自体にそういう機能は無さそうに思うのですが、 ぱっと見た感じやっぱり無さそうです。 使用するDBがそういう機能を提供していないか調べてみるのはどうでしょう。 SQLで調べられたらそれが一番だと思いますが。 いいかげんで良いのでしたら、ベタに数えるとか。 1 class ActiveRecord::Base 2 def self.db_size(*rest) 3 find(:all, *rest).inject(0) do |total, row| 4 total + row.attributes.inject(0) do |sub_total, (k, v)| 5 size = case v 6 when String; v.size 7 when Fixnum; 2 8 when Float; 4 9 when Time; 2 10 else 0 11 end 12 sub_total + size 13 end 14 end 15 end 16 end クラス毎に勝手に決めた数値を足していますが、これはいい加減な値です。 更にレコード毎に数バイト程度のオーバーヘッドがありそうな気もします。 それも考慮していません。 -- --------------------------- そめえだ http://d.hatena.ne.jp/someeda/ someeda@g... -- ML: rails@r... 使い方: http://QuickML.com/
@ 1678 2006-09-25 06:20 [tf@s... ] テーブルの容量測定の方法 -> 1679 2006-09-25 09:35 ┗[someeda@g... ] 1681 2006-09-26 10:07 ┗[tf@s... ]