it技術:データベース:oracle
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
it技術:データベース:oracle [2018/12/26 14:54] – [全てのテーブル件数の取得] yajuadmin | it技術:データベース:oracle [2019/01/28 10:48] – [日付型関連] yajuadmin | ||
---|---|---|---|
行 379: | 行 379: | ||
==== 複数列副問合せ ==== | ==== 複数列副問合せ ==== | ||
WHERE (DEPTNOとSAL)IN(SELECT DEPTNO, | WHERE (DEPTNOとSAL)IN(SELECT DEPTNO, | ||
- | http:// | + | http:// |
+ | [[https:// | ||
==== 日付型関連 ==== | ==== 日付型関連 ==== | ||
- | 部材受入れシステムの最終更新日時(DATE型に変換)を取得する。 | + | 最終更新日時(DATE型に変換)を取得する。 |
<code sql 最終更新日時の取得> | <code sql 最終更新日時の取得> | ||
- | SELECT MAX(TO_DATE(EC || ' ' || ED, ' | + | SELECT MAX(TO_DATE(EC || ' ' || ED, ' |
</ | </ | ||
部材受入れシステムの更新日時(DATE型から文字列変換)で抽出する。 | 部材受入れシステムの更新日時(DATE型から文字列変換)で抽出する。 | ||
<code sql 更新日時で抽出> | <code sql 更新日時で抽出> | ||
- | SELECT * FROM RESH003040 | + | SELECT * FROM TEST |
WHERE EC || ED >= TO_CHAR(TIMESTAMP ' | WHERE EC || ED >= TO_CHAR(TIMESTAMP ' | ||
</ | </ | ||
行 471: | 行 471: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | |||
+ | ==== インデックスの断片率の確認 ==== | ||
+ | 統計情報を更新しないと、index_stats にはデータが存在しない。 | ||
+ | |||
+ | <code sql> | ||
+ | -- 統計情報の更新 | ||
+ | ANALYZE INDEX インデックス名 VALIDATE STRUCTURE | ||
+ | |||
+ | SELECT | ||
+ | name AS " | ||
+ | , height AS " | ||
+ | , lf_rows AS " | ||
+ | , del_lf_rows | ||
+ | , del_lf_rows / lf_rows AS " | ||
+ | FROM | ||
+ | index_stats | ||
+ | WHERE | ||
+ | name = ' | ||
+ | </ | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | ==== 表領域を減らす ==== | ||
+ | === 対応1 === | ||
+ | 不要なユーザーを削除する。それと一時表領域を縮小するために下記を実行する。 | ||
+ | < | ||
+ | select * from dba_temp_free_space; | ||
+ | |||
+ | alter tablespace TEMP shrink space keep 500M; | ||
+ | </ | ||
+ | [[https:// | ||
+ | |||
+ | === 対応2 === | ||
+ | UNDO領域を縮小する。\\ | ||
+ | [[https:// | ||
+ | |||
+ | < | ||
+ | -- システムユーザーで接続する | ||
+ | SQLPLUS sys/ | ||
+ | |||
+ | CREATE UNDO TABLESPACE UNDOTBS2 | ||
+ | DATAFILE ' | ||
+ | |||
+ | alter system set undo_tablespace = UNDOTBS2; | ||
+ | |||
+ | create undo tablespace UNDOTBS1 datafile ' | ||
+ | |||
+ | alter system set undo_tablespace = ' | ||
+ | |||
+ | drop tablespace UNDOTBS2 including contents cascade constraints; | ||
+ | |||
+ | undotbs02.dbf を削除する。 | ||
+ | </ | ||
+ | |||
+ | ==== 大量データの削除 ==== | ||
+ | 大量データを削除する場合、DELETEする方法とTRUNCATEする方法またはDROP TABLEする方法がある。 | ||
+ | === DELETE === | ||
+ | DELETEする方法はロールバックが効くメリットがあるが、デメリットとしてORACLEのハイウォーターマーク(HWM)に変化はなく一度確保した領域は解放されない。それにより、抽出条件を指定した場合に件数は減ったが速度は変わらないということが起こる。\\ | ||
+ | [[https:// | ||
+ | |||
+ | === TRUNCATE === | ||
+ | TRUNCATEする方法はデメリットとしてロールバックが効かない上に全件削除されるため、必要なデータを後で挿入する。メリットとして領域を解放してくれるため、件数が減ったら抽出条件を指定しても速くなる。 | ||
+ | |||
+ | === DROP TABLE === | ||
+ | テーブルを作成し直すデメリットがあるが、メリットはTRUNCATE同様になる。 | ||
===== Oracle11g XE ===== | ===== Oracle11g XE ===== | ||
Oracle Database Express Edition(以下XE)とは制限付きながら無償で商用利用できるデータベースソフトウエアです。\\ | Oracle Database Express Edition(以下XE)とは制限付きながら無償で商用利用できるデータベースソフトウエアです。\\ |
it技術/データベース/oracle.txt · 最終更新: 2020/02/04 15:20 by yajuadmin