オンライン再定義をテストしていたのですが、どうも5秒ほど TM enque 待ちが発生するので、基本のケースでテストしてみた。 こちらのブログを参考にしています。
SYS.AUD$ のパージ方法について確認していたところ。 標準監査と統合監査は一度に消せるのか? コマンドはこちら。 BEGIN DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL( AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, USE_LAST_ARCH_TIMESTAMP => FALSE,…
Backup Restore Throttle sleep という待機イベントの待機時間が結構長かったので調べてみたが、ドキュメントが全くない。 こちらのサイトがそれっぽい。 docs.dbmarlin.com 他にも、DBMS_BACKUP_RESTORE.SLEEP なるものがあったので少し触ってみた。
変な SQL を見つけたので、気になって調べてみた。 select ...... where UPDATE_DATE BETWEEN DATE'2024-10-21' ... こんな書き方、初めて見た。いつも TO_DATE つかってる。 マニュアルはこちら。 普通に使えるみたい。 SQL> select DATE'2024-10-21' from …
適当ですが、username で検索することが多いので。
全く知らなかったのですが、VISIBLE / INVISIBLE を使えば、同じ列に複数の索引をはれるらしいです。19c で確認。
最近、INDEX を削除することが多い。 プランに影響あるかもなので、事前に使用されているかどうかチェックする SQL を使う。わりと使う。メモ用... set pages 1000 select sql_id,plan_hash_value from gv$sql_plan where object_name = 'INDEX_NAME'; selec…
ksq のトレース。 ALTER SESSION SET events='trace[ksq] disk medium'; これでとれるらしい。 www.dbi-services.com
WITH 句でベースのSELECT文を書いて、PIVOT 句でPIVOT するのがよいと思う。 ベースのSELECT は、キー+値な感じ。
100回ぐらい調べたので。 Timestamp * Connect Data [* Protocol Info] * Event [* SID | Service] * Return Code これ、レコードによって項目の数が違うのが、ほんとめんどくさい。 どうかと思うよ。
hard parse が多く、"% SQL with executions>1" が低かったので、リテラルSQLを調査した。(できればアプリ側で確認しろって思ってますが) FORCE_MATCHING_SIGNATURE を使えば、よしなにできる。
プロシージャは定義者権限で動作する。 なので、別ユーザに Execute 権限を付与しても、実行するときはプロシージャのスキーマユーザで実行される。
こんな心配するのは自分だけかも。
ファイルが多すぎると、ls が応答なくなるので対応方法について調べた。 ls | less -N
最近DDLが長くてツライので、オプション設定をよくする。
なんかおきてるときに、確認するSQL set term offset markup csv onalter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';spool a.logselect * from gv$active_session_history where SAMPLE_TIME >= cast(sysdate - 1/1440 as timestamp);spool off
たぶん、こんな感じの式 TOTAL_MB = COLD_USED_MB + HOT_USED_MB + FREE_MB USABLE_FILE_MB = (FREE_MB - REQUIRED_MIRROR_FREE_MB) / redundancy
超似てるので注意。 V$SESSIONカレント・セッションごとのセッション情報 V$SESSION_WAIT各セッションについて現行または前回の待機 V$SESSION_WAIT_CLASS各セッションについて様々な待機イベント操作に要した時間 ここら辺も似てる。 V$SESSION_EVENTセッシ…
しらなかった。 INTERVAL DAY TO SECOND はこんな感じ。 SQL> desc test1 Name Null? Type ----------------------------------------- -------- ---------------------------- ID NUMBER DAY1 DATE INT INTERVAL DAY(2) TO SECOND(6) SQL> select day1, int…
へぇー SQL> grant create session to c identified by c; Grant succeeded. SQL> conn c/c Connected. SQL> select * from dual; DUM --- X SQL> exit
まずは OS ユーザを作成。適当に。 # useradd tiger
しらなかった。。。 SQL> create table tab1 as select * from v$parameter; Table created. SQL> create index tab1i1 on tab1 (num); Index created. SQL> col OWNER for a10 SQL> col SEGMENT_NAME for a10 SQL> select OWNER,SEGMENT_NAME,EXTENTS from …
4つの集合演算子。 複数の問合せを組み合せることができる。 優先順位はすべて同じ。括弧によって順序の指定がない限り上から(左から)順に評価する。 イメージはこんな。
CURRENT_DATE ってあまり使ったことない。 SYSDATEDBサーバのシステム日付。DATE型 CURRENT_DATEDBサーバのシステム日付を、セッションのタイムゾーンに合わせて返す。DATE型 元のデータは同じはず。
以下のシェルで毎秒の UNDO BLOCK を確認できる。 #!/bin/sh ( echo "set lin 120 pages 1000 feed on" echo "conn / as sysdba" while [ 1 ] do echo "select used_ublk from v\$transaction t, v\$session s where t.addr = s.taddr and s.username='XXX';…
oradebug のコマンドも忘れるので。 select spid,pid,sid,s.username,s.program from v$session s,v$process p where s.paddr = p.addr;oradebug setospid <spidを指定>oradebug unlimit oradebug event 10046 trace name context forever,level 10oradebug event 10046 </spidを指定>…
inactive account time job なる内部ジョブがあるらしい。 どうやら、プロファイルの INACTIVE_ACCOUNT_TIME に関連して動くジョブのようです。 CREATE PROFILE INACTIVE_ACCOUNT_TIMEユーザー・アカウントがロックされるまでの連続非ログイン日数の許容値を…
もうめんどくさいので、コマンドだけ。 create undo tablespace UNDOTBS2 datafile '/u01/app/oracle/oradata/TARGET1/undotbs2.dbf' size 10m; alter system set undo_tablespace=UNDOTBS2 scope=both; drop tablespace UNDOTBS1 including contents and da…
CURRENT のログは削除できない ACTIVE なログも削除できない REDO LOG group は最低 2つ必要 未アーカイブのログも削除できない これをふまえて、drop/add を繰り返せばよい。
前回から、要するに何をしらべているかというと 効率よく ASH を検索する方法 な、わけです。 で、索引もみてみたんですが、、、 SQL> select index_name from dba_indexes where table_name='WRH$_ACTIVE_SESSION_HISTORY'; INDEX_NAME -------------------…