Oracle(8.0.5以降)で、テーブル毎のサイズを知りたいのですが、どこにその情報はあるのでしょうか?
テーブルが拡張されてそれぞれどの程度のサイズになっているのか、また、何%程度使用しているのか等が知りたいのです。
以前に、Oracleのシステムテーブルにそのような情報をもっていると聞いたことがあるのですが、わかりません。
どなたかわかる方がいましたら、よろしくお願い致します。

このQ&Aに関連する最新のQ&A

平均 SQL」に関するQ&A: SQL2005 調和平均

A 回答 (3件)

簡単に調べる方法があります。


以下のSQL文をSQL*Plus等で実行してみてください。

select segment_name,trunc(bytes/1024,0) kb
from user_segment
where segment_name='*****'
/

*****に目的のテーブル名を設定します。
テーブルのサイズがKバイト単位で表示されます。
バイト単位で知りたい場合は、trunc(bytes/1024,0)をbytesに
置き換えます。
    • good
    • 1
この回答へのお礼

ありがとうございました。
私が望んでいたそのままの回答でした。

お礼日時:2002/01/10 09:31

No.2の回答に、一部記述の誤りがありました。



[誤]
from user_segment

[正]
from user_segments

"user_segments"以外に、"dba_segments"でもOKです。
    • good
    • 3

以下の方法で表示することができます。


以下の文をサーバマネージャもしくはSQL*Plusで流してください

(1)以下のテーブルを作成する
CREATE TABLE FSPACE
(TABLESPACE_NAME VARCHAR2(30),
ALLOCATED NUMBER,
FREE_TODAY NUMBER,
FREE_YESTERDAY NUMBER,
PERCENT_CHANGED NUMBER,
SYSTEM_DATE DATE)
TABLESPACE usertsp PCTFREE 20 PCTUSED 40
STORAGE(INITIAL 1k NEXT 1k PCTINCREASE 0
MINEXTENTS 1 MAXEXTENTS UNLIMITED);

(2)テーブルの分析を行う
analyze table yosankanri estimate statistics sample 5 percent;

(3)参照したい情報を表示する

--テーブルの空領域、平均行長、追加できるおおよその行数(理論的)
select table_name, empty_blocks*4096 empty_bytes, avg_row_len, empty_blocks*4096*(100-5)/100/avg_row_len more_rows_riron from sys.user_tables where table_name ='テーブル名';

--imageテーブルの空領域、平均行長、追加できるおおよその行数(現実的)
select table_name, empty_blocks*4096 empty_bytes, num_rows*avg_row_len space_in_use, blocks*4096 space_allocated, (blocks*4096 - num_rows*avg_row_len)*(100 - 5)/100/avg_row_len more_rows_real from sys.user_tables where table_name ='テーブル名';

以上のスクリプトを流してください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qテーブル入れ子にしたらNNではダメ?

赤い背景画像を使ったHTMLにテーブルを3個入れ子で載せました。
下のテーブルのセルに白色、中のテーブルのセル色にグレー、一番上のテーブルのセルに白色を指定しました。

そこへラジオボタンをつけたのですが、本来、枠がない丸いボタンのところに赤の枠ができてしまいます。
IEでは問題ないのですが、NN4.7で確認したらこうなっていました。

デザインを変えずに回避する方法があったら教えてください。
また、NN6.*~だったらOKということはありますか?

Aベストアンサー

こんにちは!

<input type="radio" name="address" value="menber" checked style="background-color:#FFFFFF;">

と style="background-color:#FFFFFF;" を追加してください。

NN6は分かりませんが4.7と7で確認しました。

Mac 側は確認していません・・。

QOracle8.0.5で、差分ロードする際、処理を高速化させる方法を教えて下さい

Oracle8.0.5で、差分ロードする際、
処理を高速化させる方法を教えて下さい。

Oracleの知識がほとんど無いので、作業が簡単で
効率的な方法を特に募集します。

よろしくお願いいたします。

Aベストアンサー

ロードはSQLLorderでいいんですよね?

>(1)TEMPテーブルにデータをロード
>(2)TEMPテーブルから本テーブルにInsert文で差分を抽出する
>(3)本テーブルにUPDATE文で差分データ文をUPDATEする。

(2)、(3)の区別をするためのマッチングは、相関副問い合わせで行ってますか?
もし、そうであれば、(2)の処理に時間がかかるはずです。
(件数にもよりますが)。
相関副問い合わせで更新対象のレコードを削除してしまい、本テーブルにすべての差分データをロードするという手もあります。



>Tableは、単純作成しただけで、インデックス等
>を一切張っておりません。

主キーもないんですか?
ないと更新という考えが出来ないはずですが。
主キーはあるというのなら、TEMPにもはってますか?

QNN4.7 テーブルの背景を表示出来ますか?

至急教えて欲しいのですが、ネットスケープ4.7でhtmlを確認中ですが。
テーブルへ背景を埋め込むと表示されないようです。
この現象は、NN4.7では無理なのでしょうか?
どなたか助けてくださいm(_ _)m

Aベストアンサー

NN4.7では <table bgcolor="~"> や <table background="~"> は正式にサポートされています。
(Win. Mac. 共にNN4から正式サポート)

但し、NNの仕様でテーブルの各セル内が背景以外何もない場合は背景が表示されません。

おそらく、背景が表示されていない部分は、文字も画像も入れていないのではありませんか?

そのときには、各空白のセルに相当するソース部位に「&nbsp;」(&は実際には半角です)を記述しておきます。
「&nbsp;」(&は実際には半角です)は、空白を表す特殊な記号で、ブラウザには表示されません。

Q拡張SQLの記述方法を教えてください(Oracle・SQLserver)

SQL文内に"sysdate"を記述してしまうとOracleでは動作しますが、
SQLsercerではエラーになると思います。そこで「拡張SQL」を
使用すればOracleでもSQLserverでも動作するようになると
聞いたのですが記述方法がわかりません。
どなたかご教授いただけませんでしょうか?

宜しくお願いいたします。

Aベストアンサー

拡張SQLとは、レコードの抽出や追加、更新などだけではなくて、複合文を使って、他の言語のように変数や条件文などを記述する方法です。

たとえば
BEGIN
DECLARE 変数名 型 ;
IF データベースがOracleか THEN
OracleでのSQL文で宣言した変数に値をセット ;
Else IF データベースがSQLserverか THEN
SQLserverでのSQL文で宣言した変数に値をセット
END IF
END
のような感じで一連のSQL文を書くことができるということではないでしょうか?
(この例は、SQL Anywhereでの例です。)

ひょっとしたら自分の認識が違うかもしれません。・・・
どなたか補足まってま~す。m(__)m

QIE6/NN7.1のテーブルのheight="100%"

テーブルの高さの指定 height="100%" なんですが、
IE6とNN7.1で100%で表示されません。

下記の記述に間違いはありますでしょうか?
もしかしたら初歩的な問題なんでしょうか?


ちなみにIE5.5 MacのIE5.2では表示されました。
困っています。
宜しくお願いいたします。

ーーーーーーーーーーーーーー
<table border="0" cellspacing="0" cellpadding="0" height="100%">
<tr>
<td valign="top">上</td>
</tr>
<tr>
<td valign="bottom">下</td>
</tr>
</table>
ーーーーーーーーーーーーー

Aベストアンサー

HTML4.01の規格(仕様)では、tableに使えるアトリビュートは、summary、align、widthです。
heightが有効になるほうが特殊だと思ったほうがよいとおもいます

QORACLEのテーブルスペースについて

OS:AIX Ver.4.3
DB:ORACLE(Ver.8.1.6)
でSQL*Loaderを実行していたのですが、
"エラーコード -2 STDERR 書込不可"?

(ログを消してしまってはっきりは覚えてないのですが)
というエラーログが出力され、その後、ロードする
テーブルのTABLESPACEについて
"ORA-01536: 表領域 TABLESPACEXXXに対して割り当てられた領域を使い果たしました。"
というORACLEのエラーが発生し始めました。

その後、CREATEは上記ORACLEエラーにより実行不可、
その後のINSERTは途中までできていたのですが、途中から
同様のORALCEエラーにより実行不可、
という状態になっています。
(直前まで通常にデータの更新は行えていました)

ちなみに該当するTABLESPACEに割り付けられたデータ
ファイルにはまだ十分領域が空いています。
該当するTABLESPACEのデータファイルに対する割付領域を
"ALTER TABLE ~" で拡大できたと思うのですが、
方法がはっきり分かりません。

どなたかご存知の方、また、このエラー自体の原因が
分かる方、いらっしゃったらお願いします。

OS:AIX Ver.4.3
DB:ORACLE(Ver.8.1.6)
でSQL*Loaderを実行していたのですが、
"エラーコード -2 STDERR 書込不可"?

(ログを消してしまってはっきりは覚えてないのですが)
というエラーログが出力され、その後、ロードする
テーブルのTABLESPACEについて
"ORA-01536: 表領域 TABLESPACEXXXに対して割り当てられた領域を使い果たしました。"
というORACLEのエラーが発生し始めました。

その後、CREATEは上記ORACLEエラーにより実行不可、
その後のINSERTは途中までできていたのですが、途中か...続きを読む

Aベストアンサー

Tablespaceで連続した空き領域を確保できなくて、"ORA-01536: ~"の
エラーが発生した可能性はあります。

しかし修復する方法が今思いつきませんので、てっとり早い対策として
"ALTER TABLESPACE"で表領域を拡張する方法を紹介します。

Windows系OSの例ですが、
"ALTER TABLESPACE 表領域名
ADD DATAFILE 'ファイル名'
SIZE 拡張サイズM
/"
と、SQL*Plus等で入力してください。
ファイル名は、パス付きで入力します。
拡張サイズの後ろには、M(メガ)かK(キロ)を付けること。


(サンプル) 表領域 "USERS"を100M拡張します

ALTER TABLESPACE "USERS"
ADD DATAFILE 'D:\ORACLE\ORADATA\USERS100.DBF'
SIZE 100M
/

QNNでテーブルの枠線(BORDER)の設定は?

NN6です。
BORDERを使用したいのですが、NNではうまくいきません。
<TABLE>タグにあてはめるとだめだときいたので、TDにあてはめようとしているのですが…。

HEAD内で
TDにBORDER-STYLE="SOLID; BORDER-COLOR:GRAY;"
としました。これをTD CLASS=***
としているのですが、一向に線は出てきません。
どのように直せばいいのでしょうか?

Aベストアンサー

とりあえずダブルクォーテーションは不要なので削除しましょう。

BORDER-STYLE=SOLID; BORDER-COLOR:GRAY;

それでも出なかったらボーダーの太さも明記しておきましょう。

BORDER-STYLE=SOLID; BORDER-COLOR:GRAY;BORDER-WIDTH:1pt;

QOracle テーブルの列削除

タイトルの通りテーブル(test)の列(retu)を削除したいのですが・・・

Sql*pLUS画面
SQL> alter table test drop(retu); ←この用に入力
alter table test drop(retu)
*
エラー行: 1: エラーが発生しました。
ORA-00905: キーワードがありません。

となってしまい列を削除できません。
なにか構文の間違いでしょうか?

Aベストアンサー

alter table 表名
drop column 列名;

はOracleのバージョン8.1.5からです。
それ以前の場合は表を再作成します、

まず、既存の表名を変更して、
create table as select します。その際に削除したい列は抜かします。

1.rename 既存の表名 to 新しい表名;

2.create table 既存の表名
as select 必要な列のみ記述 from 新しい表名;


ただ、注意点としては「再作成」ですので、制約はNOT NULL以外全てなくなります。

QIE(5.5)とNN(4.7)のフォントサイズについて。

フォントサイズがデフォルトのままだと、IE(5.5)とNN(4.7)とではフォントサイズが違うのです。
IEの方でフォントサイズを「小」にするとNNと丁度良いサイズになるので、
IEでアクセスしたときには強制的にフォントサイズを「小」に変更することなど出来ませんでしょうか?
CSSで「12px」とかにしたんですけど、やはりIEでサイズが「中」になっていると
微妙にサイズが違ってしまうのです。
また、テーブル内のフォントのサイズも同じように変更したいのでNNに対しては融通が利かないのです。
なにとぞお知恵をお貸しくださいませm(_ _)m

Aベストアンサー

これはJavaScriptとの併用である程度解決つきます。
ブラウザによって使用するCSSファイル(この場合は外部ファイルにします。拡張子『.css』)を用意し、<head>~</head>タグ内にブラウザの判別のスクリプトを書く形です。

IE用とNN用で別々のCSSを用意する事によって、かなり近い状態で表示されるはずです(それでもWindows/Mac、他のバージョンを考えると完全に一致させる事は至難の技ですが・・・)。

JavaScriptでのブラウザ判別については、ここの『JavaScirpt』の方で見つかったので、そのリンクを。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=186603

QOracleのテーブル作成スクリプトを作成したい

Oracle8i のDBA Studioで数十の表を作成したのですが、ここからテーブルの作成スクリプトを出そうとして困りました。いわゆる Create Table文なのですが、これを自動で簡単に作る方法はないでしょうか?SQL-ServerのEnterprise Managerでは、SQLスクリプトの作成があって、Create文を簡単に生成できるのですが、これと同じような感覚で、既に作成してあるテーブルのCreate文を出力する方法はないでしょうか?Oracleには、ほとんど慣れていないので、方法があると思うのですが、探し方が悪いらしく途方にくれています。どなたかよい方法を御存じないでしょうか。

Aベストアンサー

Exportユーティリティは、通常はコマンドプロンプトから起動します。
Oracle8iの場合は "exp"
Oracle8.0の場合は"exp80"
だったと思います。

コマンドの後にログインID/パスワード、オプションパラメータを色々と
設定します。DBA StudioのようにGUI操作ではありませんが、Oracleは
本来はコマンドラインからコマンドを入力するのが、本来の操作方法です。

これを機会に、コマンドでOracleを操作する方法も勉強されてはどうですか?


#Oracleは、本来はプロフェッショナル向けのデータベースソフトです。
#初心者向けの簡単な操作方法を希望するのならば、他のDBに
#乗り換えた方がいいでしょう。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報