データベース

(Oracle)AUTOTRACEによるSQL実行計画の取得

以前にこちらの記事で、EXPLAIN PLANによる統計情報の取得方法をまとめました。 quotto.hatenablog.com 今回はもう一つの実行計画取得方法である、AUTOTRACEの利用方法についてまとめます。 なおAUTOTRACEはSQL*PlusおよびSQL Developerの機能であるため、そ…

ディスクを圧迫した一時表領域をオンラインのまま縮小する

1年越しにOracleDBで一時表領域の問題にぶち当たり学習したのでメモ。 quotto.hatenablog.com 一時表領域で起こる問題の筆頭と言えば自動拡張を続けディスクを圧迫してしまうことではないでしょうか。 10gまでの復旧方法 10gまでで広く使われている復旧方法…

(Oracle)EXPLAIN PLANによるSQL実行計画の取得

最近Oracleのパフォーマンスチューニングについて勉強しました。 Oracleのパフォーマンスの鍵となるのが、SQLの実行計画。 SQLを発行した時にどのような実行計画が立てられているのかを確認するには「EXPLAIN PLAN」と「AUTOTRACE」の2種類の方法があります…

ORA-01655が出たついでに表領域の拡張方法をおさらい(Oracle)

ユーザに対して表領域の使用権限(容量)を与えようと、alter userを発行したところ「ORA-01655」なるエラーが発生しました。 SQL> alter user scott quota unlimited on tbs_1; alter user scott quota unlimited on tbs_1 * ERROR at line 1: ORA-02002: e…

OracleDatabase12cで地道にDBインスタンスの作成

前回の記事でOracle Database 12cをインストールしました。 quotto.hatenablog.com まだインストールしただけで、使えるDBインスタンスがありません。 ということで今回はDBインスタンスの作成手順をまとめます。 インスタンスを作る場合はDBCAで実施するの…

Oracleインストール直後にORA-12547のエラーが出た場合の対処

前回の記事でOracleDatabase12cのサイレントインストール方法を紹介しました。 スルスルと何事も無く終わっているように見えますが、 もちろん、一発ではできませんでした!(てへっ☆) OSDBAユーザ(oracle)でアイドルインスタンスにつなごうとすると…… $ …

OracleDatabase12cのサイレントインストールに挑戦

Oracleのパフォーマンスチューニングについて勉強したので記事にしようと思ったのですが、 自宅にOracleの環境がない!! ということでOracleDatabaseのインストールから取り組みました。 最近はGUIで「ポチポチ」っとインストールしていたのですが、コンソ…

【Oracle】ストアドプロシージャは外部ファイルにコーディングして登録できます

ムチャクチャ単純なことなんですが、意外と「どうすればいいんだっけ」となってしまうのでメモ。OracleのPL/SQLでストアドプロシージャを登録する時、一番単純な方法としてはsqlplusからゴリゴリ書いていく感じになります。 # > sqlplus hogehoge/hogehoge@h…

MySQLのログに出力されるタイムスタンプがおかしい件

MySQLで作業をした際にログを見ると、時間がおかしいことに気付きました。MySQLを起動して、 $sudo -u _mysql mysql.server start Starting MySQL .... SUCCESS! OSのdateコマンドの結果と $date 2016年 3月31日 木曜日 00時43分31秒 JSTMySQLのログの時間が…

Mroongaの完全転置インデックスによる全文検索はどのくらい速いのか

2016/4/10 訂正 InnoDBは「転置インデックス」と書きましたがこれは誤りであり、InnoDBについても「完全転置インデックス」を採用しています。 このことは下記のサイトにも明示されています。 Groonga - InnoDB純正の全文検索エンジンInnoDB FTS またMySQL公…

InnoDBのフレーズ検索はなぜ遅いのか(転置インデックスと完全転置インデックス)

前回の記事で書いたようにInnoDBによる全文検索では、(特にNGram検索で)「フレーズ検索」によるパフォーマが悪化しやすいです。 quotto.hatenablog.com 「フレーズ検索」とは、指定した順番で単語が出てくる文章のみを抽出する方法です。 例えば「メロン」…

MySQLにおけるlike検索と全文検索のパフォーマンス比較

以前の記事でMySQLの全文検索に関して書きましたが、では実際にlikeを用いた検索と比べてパフォーマンスにどの程度違いが出るのか、検証してみました。 前提 環境 Mac OS X、MySQL5.7、ストレージエンジンにInnoDBを使います。 データ or検索用とngramによる…

MySQLで全文検索をするために必要なこと

与えられたキーワードに合致するデータをデータベースから取得することを考えた時、完全一致であれば「=」で検索を行うと思います。では与えられたキーワードを「含む」検索、つまり部分一致を行いたいのであればどうするか。最も簡単なのは「search_column …

Oracleの一時表領域のお話

とあるOracle関連のトラブルに出くわし、一時表領域について学んだのでメモ。 Oracle Master Silver取っていようが、普段の仕事でDB周り触ってないから基礎知識が全然ありませんでしたという話。 そもそも一時表領域とは Oracleの表領域には3つの種類がある…

MySQLでダンプ&リストアの実行

Lovemouthの開発は、サーバに中央リポジトリを設置してローカルの端末でクローンリポジトリを作成。そこでテストなどを行なっています。 この時、開発環境にまでスクレイピングの定期ジョブを設定していないため、 ・本番サーバのデータダンプを取って ・ロ…

Oracleの優先資格証明がエラーになった時の対応

Oracleサーバを用いてバックアップやバッチジョブなどの,ジョブやタスクをスケジューリングする際に、その都度パスワード等を入力するのは面倒です。 そこでOracle Enterprise Managerでは、それらの情報を自動で提供してくれる優先資格証明が設定できます…

SQL*Plusの問い合わせ結果をファイルに出力する方法(Oracle)

SQL*Plusから問い合わせを行った結果をファイルに出力したい、なんてことは結構あると思います。普段使わないと忘れがちなので、SQL*Plusの問い合わせ結果をファイルへ出力する方法をまとめておきます。 spoolコマンドによるファイル出力 出力ファイルの指定…