Database
ズンドコキヨシまとめ http://qiita.com/shunsugai@github/items/971a15461de29563bf90 と云う訳(?)で PL/SQL で ズンドコキヨシ を作って見た。(力技で)すまんな。彡(-)(-) ワンライナーでやっている猛者も何人か居るけど、 ワイにはこれ位が限界や……彡(-)(…
_人人人人人人人人人_ > 現行踏襲の呪縛!!! <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄ 表題の通り、2/23(火) の JPOUG Tech Talk Night #6 で Oracle Database の オプティマイザ統計運用 について、めっちゃ語ってきたやで 彡(゚)(゚) Slideshare の元リンクはこちら。 …
Oracle Database の ハッシュ・パーティション(HASH PARTITION) の 数は、下記マニュアル曰く Oracle Database VLDBおよびパーティショニング・ガイド 12cリリース1 (12.1) B71291-09 ハッシュ・パーティション化を使用する場合 http://docs.oracle.com/cd/E…
表題の通り、STS(SQL Tuning Set) を使って、 SQL の 性能統計 や 実行計画 を キャプチャするやで彡(゚)(゚)まず DBMS_SQLTUNE.CREATE_SQLSETファンクション を実行して、STS を作成しまする。 VAR v_sts_name VARCHAR2(30); EXEC :v_sts_name := DBMS_SQLTUN…
表題の通り、2/23(火) に 開催される JPOUG Tech Talk Night #6 で、 Oracle Database の オプティマイザ統計運用 について語るやで 彡(゚)(゚) JPOUG Tech Talk Night #6 固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 - 柴田 歩 - http:/…
表題の通り、sqlplus の SET AUTOTRACE TRACEONLY はトレースオンリーじゃなくて トランザクションが実行されていまいます。SELECT文では問題になりませんが、INSERT/UPDATE/DELETE は 実際にデータが更新されていまうので、気を付けて下さいませ(´・ω・)ゞ SQ…
表題の通り、Bulk Insert有り/無しの性能差を PL/SQL の FORALL文 で計測してみるやで 彡(゚)(゚)まずは 索引付き で TABLE を作成します。 CREATE TABLE TBL_A ( C1 NUMBER , C2 DATE , C3 VARCHAR2(10) ); ALTER TABLE TBL_A ADD CONSTRAINT TBL_A_PK PRIMA…
「enq: UL - contention」は DBMS_LOCKパッケージ で 明示的 に 排他ロックを取得した場合に出る 待機イベント なんやで。彡(゚)(゚)複数セッション で DBMS_LOCK.ALLOCATE_UNIQUE を実行して、 「enq: UL - contention」の P1, P2, P3 の違いを調べてみるやで…
JPOUG Advent Calendar 2015 の 9日目となります。 昨日の記事は charade_oo4oさん の Oracle on Hyper-V 2015 でした。昨日の charade_oo4oさん や 渡辺 剛さんの記事、s4r_agentさんの記事など、 世の中は確実に Cloud な感じやね。彡(゚)(゚)さて今年のワイ…
まず REDOログ/データファイル の格納場所を確認、どちらもASM上に配置されています。 SET PAGESIZE 100 SET LINESIZE 170 COLUMN MEMBER FORMAT A80 SELECT GROUP#, MEMBER FROM V$LOGFILE; GROUP# MEMBER ---------- -----------------------------------…
言いたい事は件名で語り尽くしてしまったけど、kwsk解説。 oratab に記載されるエントリは Oracle Clusterware の oraagentプロセス に よって自動更新されます。下記マニュアルに記載の仕様やで。 Oracle Real Application Clustersインストレーション・ガ…
小数点以下「6桁」まで取得できるみたい。μ秒(10^-6)って事か(゚ε゚ ) SELECT TO_CHAR(SYSTIMESTAMP, 'YYYY/MM/DD HH24:MI:SS.FF9') AS NOW_TS FROM DUAL NOW_TS -------------------------------------------------------------------------------- 2015/09/0…
EXPLAIN PLAN FOR 〜(※AUTOTRACE TRACEONLY含む)で出てくる実行計画 と SQL実行時の実行計画が異なるケースを作ってみるZe!(`・ω・)Ъ幾つかパターンは有るんですが、WHERE句の範囲検索を バインド変数で指定するケースでやってみます。簡単なんで。まず服は脱…
Oracle の ASH(Active Session History) から リテラルSQL を追跡してみます。ASH にはアクティブなセッションの履歴情報、もう少し詳しく言うと DB CPU または 待機状態(Disk IO/ロック待ち/Network待機/etc...) の セッション情報 が 1回/1秒 の間隔で自動…
まず服を脱ぎます。まず "トレース用" のJDBCドライバをダウンロードします。 ojdbc*_g.jar を Oracle のサイトからダウンロードしてきます。JDBCドライバはバージョンが幾つかありますが、差し当たり11gR2(11.2.0.4)の "トレース用"JDBCドライバを下記サイ…
通常、APPENDヒント付きの INSERT 〜 SELECT文 は 排他ロック を表全体で獲得します。例えば以下の SQL文 を別セッションから併行で実行すると、 後から実行した SQL は TM enqueue で待機します。 -- ★セッション1 INSERT /*+ APPEND */ INTO TBL_B SELECT…
Oracle Datapump の export(expdp) で出力される ダンプファイル は、 通常 ${ORACLE_HOME}/bin配下の oracleバイナリと同一の owner:group で出力されます。 [oracle@host1 ~]$ . .ayshibat [oracle@host1 ~]$ ls -la $ORACLE_HOME/bin/oracle -rwsr-s--x 1…
Oracle Database の enqueue(ロック) の 待機させている方(ホルダー) と 待機している方(ウェイター)を出力するには、V$LOCKビューを参照します。以下の SQL を実行します。 SET LINESIZE 300; COLUMN SESS FORMAT A20; SELECT DECODE(request,0,'Holder: ',…
※2018/8/20訂正:DBMS_LOBパッケージのGETLENGTHファンクションは、BLOB型はバイト数を戻しますが CLOBについては文字数を返します。バイト数ではありません。謹んでお詫び申し上げます。 下記の記事も参照して下さいやで彡(゚)(゚) CLOB型の(文字数ではなく)…
共有プールの特定カーソルを狙い打ちで age out(消去) するには、 DBMS_SHARED_POOLパッケージの PURGEプロシージャ を使用します。まず V$SQLAREA を 参照して、age out したい SQL の ADDRESS値 と HASH_VALUE値 を確認します。 SQL> SET LINESIZE 170; SQ…
※2015年12月追記 こちらもよろしく!(`・ω・)ゞ まだ統計固定で消耗してるの? - JPOUG Advent Calendar 2015 (Day9) - [id:gonsuke777:20151208:1449587953] JPOUG Advent Calendar 2014 の 5日目となります。「Bind Peek を もっと使おうぜ!」と銘打って、…
タイトルだけだと訳が解りませんな。下記表(SALES表)のレコード群を SQL> SELECT * FROM SALES ORDER BY SALES_DATE, JAN_CODE; SALES_DATE JAN_C SALES_CNT ------------------- ----- ---------- 2014/10/06 00:00:00 AAA 100 2014/10/07 00:00:00 AAA 200…
以前の記事である 数字のみのレコードを抽出するSQL(REGEXP_LIKE条件) http://d.hatena.ne.jp/gonsuke777/20120215/1329301835の改良バージョン。まぁ改良と言っても結果は変わらないんですがね。。。 やっぱり Oracle の REGEXP_LIKE条件を使用してみる。 W…
ちょっとした疑似レコードをSELECTだけで簡単に作れるので、非常に便利です。 階層問い合わせ(CONNECY BY〜) と LEVEL疑似列を使用します。 Oracle Database SQL言語リファレンス 11gリリース2 (11.2) B56299-06 LEVEL疑似列 http://docs.oracle.com/cd/E163…
DATABASE_PROPERTIESディクショナリを参照する。V$DATABASEじゃないんですね〜〜。 Oracle Databaseリファレンス 11gリリース2 (11.2) B56311-08 DATABASE_PROPERTIES http://docs.oracle.com/cd/E16338_01/server.112/b56311/statviews_2160.htm#sthref1733…
V$PWFILE_USERSビューを見る。 SQL> SELECT * FROM V$PWFILE_USERS; USERNAME SYSDB SYSOP SYSAS ------------------------------ ----- ----- ----- SYS TRUE TRUE TRUE ASMSNMP TRUE FALSE FALSE SQL>
またまた更新、、、以下のイベントで語って参りますた。 Oracle Technology Day 2014 in 名古屋 http://www.oracle.com/webapps/events/ns/EventsDetail.jsp?p_eventId=176929&src=7863979&src=7863979&Act=65 Oracle Technology Day 2014 in 大阪 http://ww…
さっきのは前フリで、こっちが本来やりたかったこと。 EXTRACTファンクションを使いまする。例として、1日12時間31分55.129秒の INTERVAL DAY TO SECOND型を秒数に変換してみる。 SELECT EXTRACT(DAY FROM to_dsinterval('+01 12:31:55.129')) AS DAY , EXTR…
例として、現在時刻(SYSTIMESTAMP) の 1日12時間31分55.129秒後を算出してみる。 TO_DSINTERVALファンクションを使う。 ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'YYYY/MM/DD HH24:MI:SS.FF'; SELECT SYSTIMESTAMP AS CURRENT_TIME , SYSTIMESTAMP + to_ds…
ぐぐったら出てきた。ワイのもジャストプレイヤー・瀧CEOの資料もうpされてた。 他の方々の資料も盛りだくさん。皆さんよろしくやで〜〜。 Oracle DBA & Developer Day 2013 セッション資料http://www.oracle.com/technetwork/jp/ondemand/ddd-2013-2051348…