X

Katsumi's Blog

DB

SQL実行計画の確認方法の種類 9+1

1ヶ月以上前になってしまいましたがOracleなどのDBに強い世界的に有名なコンサル集団の会社のブログにOracle DBでSQL実行計画を見る 9 つの方法が紹介されていました。Distinguish Real SQL Execution Plans from Fake Ones! | Official...

1ヶ月以上前になってしまいましたがOracleなどのDBに強い世界的に有名なコンサル集団の会社のブログにOracle DBでSQL実行計画を見る 9 つの方法が紹介されていました。Distinguish Real SQL Execution Plans from Fake Ones! | Official Pythian® BlogThere are many methods to extract the execution plan for a specific SQL statement実際のsqlplus中での実行結果をコピペしていると思われます。勉強になります。SQL Developer で実行計画を得る方法など含めるともっと方法はあります。もう一つ番外編として7年以上前になりますが以下の方法が当時の有名なOracleコンサルにより紹介されています。Tracing Oracle SQL plan execution with DTrace | Tanel Poder's Performance & Troubleshooting...

ビットを数えるPL/SQL関数のインライン実行

先日の続きです。MySQLのBIT_COUNT()のSQL版でビットを数えてみる後者の方を1から10まで実行してみました。結果は正しそうです。近日中にPL/SQLファンクション化したものについて書く予定です前回2つリンクを書き、実際にも2通り関数の書き方がありますが結果的には実行時間もセッション統計もほぼ差がありませんで...

先日の続きです。MySQLのBIT_COUNT()のSQL版でビットを数えてみる後者の方を1から10まで実行してみました。結果は正しそうです。近日中にPL/SQLファンクション化したものについて書く予定です前回2つリンクを書き、実際にも2通り関数の書き方がありますが結果的には実行時間もセッション統計もほぼ差がありませんでした。 なのでここでは後者のみ定義をコピペします。create or replace function bit_count_2( n in number) return number asbegin return MOD( BITAND( (n - BITAND(n / 2, 3681400539) - BITAND(n / 4, 1227133513)) + (n - BITAND(n / 2, 3681400539) - BITAND(n / 4, 1227133513)) / 8 , 3340530119 ) , 63 );end...