全くしらなかった。 記憶が消されてるのかも。 SQL> ALTER INDEX IND1_TAB1 REBUILD ONLINE;ALTER INDEX IND1_TAB1 REBUILD ONLINE *ERROR at line 1:ORA-14086: a partitioned index may not be rebuilt as a whole SQL>SQL> ALTER INDEX IND1_TAB1 REBUILD…
絶対わすれるやつ。 $ORACLE_HOME/rdbms/lib/config.c.
とりあえず、以下を見ておけばよいと思う。 alter session set nls_date_Format = 'YYYY/MM/DD HH24:MI:SS';select * from v$session_longops where opname like '%RMAN%' and start_time > sysdate -24/24 order by start_time;select * from v$rman_backup…
オンライン再定義をテストしていたのですが、どうも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ユーザー・アカウントがロックされるまでの連続非ログイン日数の許容値を…