ラァンフォーヱヴアー

出先・常駐先用コマンドリスト。2020年からリモートワークなので常駐なくなったけど。その他思ったことメモ。

Oracle

デッドロックや競合が起きていないか

あとでまとめる デッドロック みんな大好きORA-60。 select sid, type, lmode, request, ctime from v$lock where type in ('TX','TM') ; ラッチ競合 メモリの中でほんの一瞬下位の内部ロックをかけること。起こると待機状態になる。 ただ起きてたとしてもそ…

今ちゃんと動いているSQL文の一覧出力

ありがち。「処理が長時間返ってこないけど、ちゃんと動いているの?」に対する回答。 2018/12/24 大幅追記。 今動作中(セッションがACTIVEである)SQL文の一覧 本当はビューを結合するのは保証しないのであんまりよくない。 select ses.sql_id ,ses.event ,s…

統計情報の移行手順

統計情報を移行する。 例えば大量データが入っている本番環境の統計情報を開発環境にもってくることで大量データ入れなくても同じ実行計画を取れたり、 反対にテスト環境で大量データを入れてテストした結果を稼働前の本番環境に入れるみたいなことをする。 …

現在開いているカーソルの数

「急に接続ができなくなりました、OSのCPU/メモリは十分に余力があります」って言われたらたたいてみるシリーズ。 初期化パラメータopen_cursorsがこの瞬間どれくらい使われているか。 オープン可能なカーソル数の確認 show parameter open_cursors 現時点で…

空き領域を確認する方法

空き領域を確認する select total.TABLESPACE_NAME tsname, A/1024/1024 total_size, B/1024/1024 max_extent_size, C/1024/1024 free_size, A/1024/1024 - C/1024/1024 use_size, (B-(A-C))/1024/1024 max_ext_free_size, (A-C)/B*100 max_use_rate, (1-nvl…

TEMP表領域の使用状況をみる

たくさんのTEMP表領域を使用しているセッションがないかの確認する。 以下は2018/12/1 22:00から翌日22:00までの間にTEMP表領域を1GB以上使用している例。 select sample_time ,session_id ,session_serial# ,seq# ,user_id ,sql_id ,top_level_sql_id ,even…

SQL*PlusのみでCSV(風)ファイルを出力する方法

表題のとおり。 どうしても多少不完全。本来はしかるべきツールを使用すべき。 set echo off set linesize 15000 set pagesize 100 --タイトル不要なら0の方がよい set trimspool on set feedback off set colsep ',' -- Comma-Separated Valuesすなわちカン…

リプレース等の理由で今動いているOracleDBの諸々を確認する

他社リプレースなどの場合で、パラメータシートが残ってない/メンテされてないことは往々にありがち。 そこで以下の通り確認する。(随時追加) DBF関係 UNIX/Linuxを想定したOSレベル確認。 unset LANG find . -follow -type f -name *.dbf -exec ls -l {} …

DBFの増やし方

すっごい初歩的だが以外と忘れがちなのでメモ。普通はsystemユーザでやる。 確認 増やしたい表領域名とパス確認する。 -- SQL*Plusでやるならば適当に見栄え整えて set lines 150 set pages 1000 col tablespace_name for a30 col file_name for a50 col fil…

DBが起動してから今の瞬間までで最大に使用した初期化パラメータprocesses、sessions数

よく言われるやつ。 「急に接続ができなくなりました、OSのCPU/メモリは十分に余力があります」って言われたらたたいてみる。 select * from v$resource_limit where resource_name in ('processes', 'sessions') ; CURRENT_UTILIZATIONが今この瞬間の値。MA…

Oracle DBで全部のDBFを自動拡張するスクリプトを作る方法

表題のとおり。 実行はsystemでやるべき。 set line 200 set pagesize 0 set head off set trimspool on spool dbf_autoextend_off.sql select 'alter database datafile ' || '''' || file_name || '''' || ' autoextend off;' from dba_data_files ; spool…