タグ

sqlに関するlearnのブックマーク (8)

  • 日付FROM-TOのデータを穴埋めする - Qiita

    こんな形のテーブルは、「今日有効な料金設定はどれだっけ?」をとってくるには問題ないですが、月次データ集計などで他のイベントテーブルとジョインして処理しようとすると面倒です。 OracleにはMODEL句というあまり現場で使われているのを見かけない機能があり、これを使うとダミーのView的なものが簡単に作れます。 http://codezine.jp/article/detail/3091 年分のカレンダーは以下のようなSQLで作れます。 SELECT c1 FROM dual MODEL dimension by (1 as rn) MEASURES (sysdate as c1) rules iterate (365) (c1[ITERATION_NUMBER]=SYSDATE-ITERATION_NUMBER) ORDER BY 1

    日付FROM-TOのデータを穴埋めする - Qiita
  • DataGrip: The Cross-Platform IDE for Databases & SQL by JetBrains

    A powerful IDE from JetBrains for SQL on macOS, Windows, and Linux.

    DataGrip: The Cross-Platform IDE for Databases & SQL by JetBrains
    learn
    learn 2015/03/25
  • 開発者のためのSQLパフォーマンスの全て

    前書き - インデックスの作成はなぜ開発者のタスクなのか インデックスの 内部構造 - インデックスは何に似ているか インデックス リーフノード - 二重連結リスト 検索 ツリー(Bツリー) - バランス木 遅いインデックス パートI - インデックスを遅くする2つの原因 where 句 - 検索のパフォーマンスを改善するためにインデックスを作成 等価 演算子 - 一致するキーの検索 プライマリキー - インデックスの使い方を確認 複合インデックス - 複数列に対するインデックス 遅いインデックス パートII - 前の問題点が再び 関数 - where句の 中での関数 大文字・小文字を区別する 検索 - UPPERと LOWER ユーザ定義 関数 - 関数インデックスの制限 インデックスの作り過ぎ - 冗長性の排除法 パラメータ化 クエリ - セキュリティとパフォーマンスのために 範囲 検

    開発者のためのSQLパフォーマンスの全て
  • Where狙いのキー、order by狙いのキー

    11. I'm yoku0825 ● とある企業のDBA ● オラクれない ● ポスグれない ● マイエスキューエる ● 家に帰ると ● 嫁の夫 ● せがれの父 ● 馬鹿だからかわいいわけじゃなくて、かわいい イルカがたまたまバカだった 12. はじめに ● サンプルデータは MySQLのサンプルデータ ベース(worldデータベース)からインデック スを全て取っ払ったものです ● http://dev.mysql.com/doc/index-other.html ● コードはgithubに上げてあります ● https://github.com/yoku0825/yapc_2014 ● すごく…ウンコードです… 13. はじめに ● 原則、MySQLは1つのテーブルにつき同時に1 つのインデックスしか使いません ● Index mergeとかあるけどアレは例外だし狙って やっても速くなる

    Where狙いのキー、order by狙いのキー
  • 津島博士のパフォーマンス講座 第11回 良いSQLについて(2) | oracletech.jp

    皆さんこんにちは、だいぶ寒くなってきましたが体調はいかがでしょうか。私は多少寒気がするのですが、どうにか頑張っております。 今回は、以前に説明して好評だったので「パフォーマンスの良いSQL文ついて」の続きを説明しようと思いますので、参考にして下さい。 ■1.SQL文について まずは、続きで良いSQL文についてですが、以前にも言いましたが無駄なリソースをできるだけ使用しないことです。無駄なリソースを使用しないとは、同じ処理や不必要な処理をできるだけ実行しないことです。そのため、以下のような無駄な処理を行わないや視認性の良いSQL文を記述するのが良いと思います。視認性が良いことでミスを防げたり無駄な処理を見つけることができたりします。 今回はこのような作成する上での役に立つポイントをまとめてみました。 無駄なソート処理をしない ファンクションを使用する 繰り返し使用する副問合せはWIT

  • 津島博士のパフォーマンス講座 第9回 良いSQLついて | oracletech.jp

    皆さんこんにちは、まだまだ暑いですが体調はいかがでしょうか。私はどうにか頑張っております。 今回は、詳しく聞きたいというご要望のありました「パフォーマンスの良いSQL文ついて」まとめて説明しようと思います。すべてのパターンについて解説はできませんが、第4回で少し説明した実行計画を使用して説明しますので、実行計画などを見るときの参考にもして下さい。 ■1.良いSQL文とは まずは、良いSQL文とはどのようなものなのかを説明します。簡単に言うとリソースをできるだけ使用しないようにすることですが、なかなか難しいと思いますので参考になるポイントをまとめてみました。 高速にアクセスするには、索引を使用してアクセスするのが一般的ですから、索引が使用されないSQL文を記述しないことです。そのため、どのようなときに索引が使用されないかを知っておくことも大事になります。それから、テーブルの結合やソー

  • INDEX FULL SCANを狙う - MySQL Casual Advent Calendar 2011 - SH2の日記

    2011年8月のkazeburoさんのエントリに対する解説記事です。結論から言うとkazeburoさんの案に賛成なのですが、日はどうしてそうなったのかというところを確認していきたいと思います。記事はMySQL Casual Advent Calendar 2011の17日目のエントリです。16日目はakira1908jpさんでした。 当時の内容を覚えていない方は、先にkazeburoさんのエントリをご一読ください。また、テストケースがGitHubに公開されていますのでカジュアルに再現試験をすることも可能です。 Covering Index と self-joinMySQL - blog.nomadscafe.jp kazeburo's gist: 1150842 - Gist 問題のSQLをチューニングするには、MySQLがインデックスに対してどのようにアクセスするかという点につ

    INDEX FULL SCANを狙う - MySQL Casual Advent Calendar 2011 - SH2の日記
  • 指定した範囲の行を取得するクエリ - HHeLiBeXの日記 正道編

    DB2 Express-C v9.7.2のWindows版で使えていたLIMIT/OFFSETが同Linux版で使えなくて、プラットフォームによって違うのかと思ってしまい、同等のことができる構文をいろいろと調べた挙句、インストール直後の設定が違っていただけという。 で、せっかくなので、調べたいろいろをまとめてみようということで。 ただDBごとに並べても面白くないので(謎)、構文ごとにまとめてみるというアプローチで(更謎)。 前提として、次のようなテーブルを作っておく。 CREATE TABLE hoge(str VARCHAR(8)) INSERT INTO hoge(str) VALUES('bbb') INSERT INTO hoge(str) VALUES('ddd') INSERT INTO hoge(str) VALUES('fff') INSERT INTO hoge(str)

    指定した範囲の行を取得するクエリ - HHeLiBeXの日記 正道編
    learn
    learn 2011/11/09
  • 1