Many Oracle DBA’s are probably familiar with what Optimizer trace files are and likely know how to create them. When I say “Optimizer trace” more than likely you think of event 10053, right? SQL code like this probably is familiar then: alter session set tracefile_identifier='MY_10053'; alter session set events '10053 trace name context forever'; select /* hard parse comment */ * from emp where en
…Or in other words, how to translate SQL_ID to a hash value :) I once wrote a script to demo this in my Advanced Oracle Troubleshooting class. Check this, I’ll run a query and then check what is its SQL_ID and HASH_VALUE from V$SQL: SQL> select * from dual; D - X SQL> select sql_id, hash_value from v$sql 2 where sql_text = 'select * from dual'; SQL_ID HASH_VALUE ------------- ---------- a5ks9fhw2v
動作確認環境 Oracle Database 11g Release 11.2.0.1.0 (windows 32ビット版) 内部結合 結合条件を満たすデータを取得 内部結合の典型的な使用例は、下記のように、キーに紐づくデータを取得するケースです。 結合条件が、値が等しいことである場合は、等価結合とも呼ばれます。 Oracle8i Databaseまでは、where句に結合条件を記述する必要がありましたが、Oracle9i Databaseからは、SQL99構文のJoinが使えます。 create table oyaTable(ID primary key,Val) as select 111,100 from dual union all select 222,200 from dual union all select 333,300 from dual union all se
オラクル性能問題の関する最高の専門家で平価されているCarry Milsapさんは性能を改善する絶対的な原則を言及したことがあります。 ある作業の性能を改善する最高の方法はその作業自体をしないということだ。 本当に名言の中の名言です。 次に簡単な例があります。 1. これ以上チューニング不可能に見える完璧に最適化された文章です。ほぼ3.4秒がかかりました。 TPACK@ukja1106> declare 2 v_value number; 3 begin 4 for idx in 1 .. 100000 loop 5 select trunc(idx) into v_value from dual; 6 end loop; 7 end; 8 / PL/SQL procedure successfully completed. Elapsed: 00:00:03.42 本当にそうでしょうか。
各種インフラ技術(OS、ストレージ、ネットワーク)やオラクル製品といった話題を取り上げます。著者は小田圭二、「門外不出のOracle現場ワザ」、「絵で見てわかるOracleの仕組み」、「絵で見てわかるOS/ストレージ/ネットワーク」などの著作もあります いつか書こうと思っていたSPM(SQL Plan Management)の使用方法を紹介します。それは、アプリに手を加えることなく(ヒント句の追加すら不要)、自分の思うような実行計画に変更・固定する方法です。本記事はKROWN番号 134329 から学びました。そのKROWNの内容を多く使用しています。ご了承ください。 さて、まずは、autotraceで元々の実行計画を見てみます。もちろん、別の方法でも構いません。 SQL> set autotrace traceonly explain SQL> select count(test1.no
SelectInsertするときにInsert先のテーブルにPK、UK、FK、NOTNULL制約などが張ってあって Insertに失敗すると結構ストレスがたまります。 そもそもどのレコードで失敗したのかわからなかったりすると NotNullだったらSelectのWhereにIS NOT NULLかいて探したり UKだったら GROUP HAVING 書いて探したり かなりめんどくさいので10gからはdbms_errlogパッケージ使ってレコード特定してます。 http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/appdev.102/B19245-02/d_errlog.htm つかいかた例: Insert先にUKが張ってあり、Select元で重複が発生している状態 select元テーブル CREATE TAB
本連載はSQLの応用力を身に付けたいエンジニア向けに、さまざまなテクニックを紹介する。SQLの基本構文は平易なものだが、実務で活用するには教科書的な記述を理解するだけでは不十分だ。本連載は、著名なメールマガジン「おら!オラ! Oracle - どっぷり検証生活」を発行するインサイトテクノロジーのコンサルタントを執筆陣に迎え、SQLのセンス向上に役立つ大技小技を紹介していく。(編集局) 今回はOracle8i(リリース8.1.6)から実装されている分析関数について解説します。分析機能を理解しておくと、いままでは副問い合わせや複数回に分けていた問い合わせを1回のSQL文で簡単に行えるようになります。 分析関数の基本を理解しよう まず、分析関数とは、どのような関数であるのかを簡単に説明しておきましょう。 集計関数と分析関数の違いは? 分析関数は、どのように処理されるの? 分析関数は、どのような分
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く