Oracle DB
はじめに SPM機能を有効化する ベースラインを固定化する 複数のベースラインを評価する まとめ はじめに Oracle DBでSQLの実行計画をベースラインとして管理できるSPM(SQL Plan Management)という機能がある。 今回、これを使ってSQLの実行計画の登録と固定…
昨日の記事に続き、今日もSQLネタ。さて、あるテーブルにある行を検索する際に検索条件が外部キーで参照した別テーブルの列にあり、かつそのテーブルの値をselectしない場合、 そのようなSQLは結合もしくはexists句を使う2パターンで表現できる。今回はこの2…
SQLを書いていて、あるグループごとにある項目を集計して最大値を持つ行だけを検索したいときがある。 これまではあまり気にせずにgroup byと集計関数MAXを使ったサブクエリを検索条件に使うことで求めていたが、 パフォーマンスがよくないことがあり、今回…
Windows7にOracle Client 12c (12.1.0.2.0)をインストールしたときにINS-30131というエラーが出たので対処法をメモ。原因としては、一時領域にインストーラがアクセスできなかったためで、対処法としてはC:¥トップをc$という共有設定することで解消した。 イ…
前回、前々回とOracle Database 12cの構築まわりをやってきた。Oracle Database 12cからインメモリオプション(In-Memory Option)がついたと話題になっていたので試してみる。まず、機能を有効化し、テーブル検索時の実行計画にインメモリの計画が表示される…
前回、Oracle Database 12cをインストールし11gR2と同じ感覚でsysでログインできるところまで見た。Oracle Database 12c (12.1.0.2.0) で遊んでみた(その1) 〜インストール〜 - カタカタブログこのまま続けて、DBスキーマ(ユーザ)を作成してみるが、11gまで…
やっと会社が終わり休みに入ったので、冬休みの自由研究として、Oracle DB 12cを検証環境にインストールして遊んでみることに。12cはプラガブルデータベースとかインメモリオプションとか、新しい概念も多いのでその辺を触ってみようと思います。まずは、い…
普段はWindowsで仕事をしているので、Oracleクライアントツールはosqleditを使っているのだが、普段使いのmacではいいクライアントツールがないかなと思っていた。探してみたがあまりよさそうなのが見つからないので、Oracle純正のSQL Developerがmac版もあ…
久々にOracle Databaseの記事を。 Oracle Databaseのトリガーを使っていて、トリガー発生の原因となったイベントに関する情報を取得したいということがあった。例えば、CREATE TABLE文などのDDL発行を起因するシステム・トリガー内で、作成しようとしたテー…
Oracle PL/SQLではbase64エンコード/デコードは標準のutl_encodeというパッケージにてbase64_encodeやbase64_decode関数で簡単にエンコード/デコードすることができる。 ただし、base64は本質的にバイナリ(バイト列)とテキストの可逆変換なので、RAW型のデー…
APEX4.2.4インストール時に日本語対応を入れたものの、画面を開くと、日本語が「?」と化けてしまい、正しく表示されなかった。原因はDB側のキャラクタセットの問題だったので、インスタンスを再作成して解消した。以下、そのときのメモ。以下のように日本語…
実際のテーブルは存在しないけど、プログラム上で二次元配列構造を定義し、 それをテーブルのように扱うために表関数(table()関数)というものがある。 PL/SQLプログラム上で配列の配列を定義する場合にも使えるので、使用方法をまとめてみた。今回は例として…
Oracle DBにSQLを投げて検索結果をCSVやTSV等のフォーマットで標準出力してくれるchcsvというツールがある。 Pro*Cのソースからコンパイルが必要なため、そのときの手順をまとめてみる。 環境はCentOS6.5で、Oracle Database11gR2が入っている。公式サイト =…
PL/SQLでアプリを書いていると、たまにOSコマンドやシェルスクリプトを実行したくなる。 まあOracle DB上からJavaを実行することはできるので、どうにかできるかなあとは思っていると、 すでにPLSQL_OSCOMMANDなるものがあるらしい。Oracle PL/SQL executing…
以前インストールしたOracle DBにApexをインストールしてみた。 Apex(Oracle Application Express)とはOracle DB上で動くWebアプリケーションのことで、SQLとGUI操作だけで簡単にWebアプリが作れるものである。 以下の資料が詳しいので、こちらの手順に従っ…
SQLの実行計画を見るためによく使うDBMS_XPLAN.display。 ここに'OUTLINE'または'ADVANCED'オプションを渡すと、実際に付与されるヒント句が表示されるようになる。 これは'ALL'オプションでは表示されず、ドキュメントにも記載がないが、以下の本に詳細が書…
Oracle DBのインスタンスを落とさずにOSをshutdownすると 次回OS起動時にDBが上がらなくなった。。 セマフォのカーネルパラメータを増やすと解消できたので、対処法をメモ。[環境] DB: Oracle DB 11gR2 OS: CentOS6.3OSシャットダウン後にDBスタートアップし…
SQLの外部結合とスカラサブクエリの等価性について調べてみたので結果をまとめてみる。 スカラサブクエリとは スカラサブクエリとはスカラ値(つまり単一値)を返すクエリのことである。 SQLにおけるスカラ値を返すとは、単一列の値を1行だけ返すようなクエリ…
RubyからOracle Databaseにアクセスしselect文を発行してみる。今回はWindows7上のRubyで実行。 まず、RubyからOracleにアクセスするためのライブラリruby-oci8をgemでインストール。 >gem install ruby-oci8 Fetching: ruby-oci8-2.1.7-x86-mingw32.gem (10…
Oracle DBの起動と停止をスクリプト化してみた。11g 起動 リスナー起動とデータベースのスタートアップまで。start_db.sh export ORACLE_HOME=/u01/app/oracle/product/db/11.1.0/orcl export ORACLE_SID=orcl $ORACLE_HOME/bin/lsnrctl start $ORACLE_HOME/…
(2014/12/29追記) Oracle Database 12cのインストール手順に関する記事も執筆しました。 Oracle Database 12c (12.1.0.2.0) で遊んでみた(その1) 〜インストール〜 - カタカタブログ Oracle Database 11gR2をインストールしたときのメモ。[環境情報] CentOS6…
Oralce Databaseの起動時の手順をメモ。 DBとリスナーとEnterprise Manager Oracle Database sqlplusでOracle DBにローカル接続 $ sqlplus / as sysdbastartupコマンドで起動 SQL> startup リスナー $ lsnrctl start EM $ emctl start dbconsole