タグ

Sqlに関するNobiNobiKotaのブックマーク (8)

  • プログラマのための SQL を読んで - ボクココ

    ども、@kimihom です。 今回は以下のをざっと読んだので感想を書く。760ページにもなる超大型だ。 プログラマのためのSQL 第4版 作者:ジョー・セルコ,Joe Celko翔泳社Amazon SQL でここまでできる 私は普段、Web アプリケーションのコードを書くエンジニアなのでデータベースの知識はそこまで深くない。よりデータベースの知識を深めようということで書を手に取った。 書の前半部分は SQL の一般的な教養的な感じで学ぶことができた。いきなりトランザクションの話が出てきたときはマジかよって思ったけど、そのあとは SQL の各句の詳細な解説などもあった。 一番ここで感じたのは、「NULL の扱いの難しさ」だったように思う。NULL は SQL の中で当に特異的な存在で、実際にクエリを書くときも注意しないと意図しない結果を生むことにもなりかねない。書でにおける N

    プログラマのための SQL を読んで - ボクココ
  • SQLのNOT INはなぜ遅い? - C.O.D -Coding or Die-

    このあいだ聞かれたときにすぐに答えられなかったから書いとく。あとから考えたら当たり前のことだったんだけどね。 結論から言えば、全レコードをシーケンシャルアクセスしなければならないから遅い。 以下、それについて具体的な話を展開するけど、最初に断っておくと私はSQLRDBMSも詳しくないので間違ったことを書いているかもしれない。もし、致命的な間違いなどに気づいた方はコメントしてくれると助かる。 NOT INについて考える NOT INが遅いのは、RDBMSの内部動作を考えれば当たり前で。 SELECT * FROM Employee WHERE id NOT IN(2, 3); というSQLは、Employeeテーブルからidが2でも3でもでないレコードを取得しようとしているが、これを達成するためには最初から最後のレコードまでアクセスしてノットイコールの比較を行わないと抽出できない。例外なく

    SQLのNOT INはなぜ遅い? - C.O.D -Coding or Die-
  • Rails のクエリキャッシュの仕組みを調べた - takatoshiono's blog

    はじめに Rails のログファイルに CACHE (0.0ms) という行が出力されることがある。 CACHE (0.0ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = '1321459' LIMIT 1 [["id", "1321459"]] ここから以下のことがわかる。 このリクエストでこのクエリが発行されるのは2回目またそれ以上である 結果をキャッシュから返したのでDBには問い合わせていない クエリキャッシュ この仕組みはクエリキャッシュというもので、Rails 2.0 で導入された(らしい。よく知らない)。 Rails ガイドだと Caching with Rails: An overview — Ruby on Rails Guides に記載されている。 1.5 SQL Caching Query caching i

    Rails のクエリキャッシュの仕組みを調べた - takatoshiono's blog
  • 誰でも簡単に超高速なクエリができるBigQueryとは?

    この2つの技術は、グーグル独自の技術というわけではない。しかし、ハードウェアから構築している、既存のグーグルのクラウド技術を活用し、パブリックなクラウドサービスとして提供可能なレベルの実装になっている点がGoogle BigQueryの強みとなっている。 BigQueryの特徴 他の類似サービスとの比較 巨大データを処理する技術としては、同じグーグルが使ってきたMapReduceというものがある。MapReduceとBigQueryを比べると、MapReduceが巨大なデータを安定的に処理できるプログラミングモデルであることに対し、BigQueryはアドホックにトライ&エラーしながらクエリを実行するサービスであることが異なっている。 MapReduceは、非構造化データを、プログラミングモデルを通して扱うことができ、巨大なテーブルの結合や巨大な出力結果のエクスポートも可能である半面、処理時

  • お金借りる 最終手段

    金利が他よりも低いカードローンは、一定レベル以上の金額が必要な時とか、何度も借り入れをしなければならないときには、月の返済額を随分少なくすることができるカードローンだと言って間違いありません。 無利息で貸してもらえる期間があるカードローンというのは、借りた後何日間かは借入金に対する利息がカウントされないカードローンを指します。定められている無利息の期限内に返済することができれば、金利は不要です。 学生さんが対象のローンですと金利も安く、月毎の返済額を見ても、学生でもちゃんと返していけるような内容になっておりますから、躊躇なくお金を借りることができると言えます。 銀行等の金融機関による専業主婦用のカードローンと申しますのは、借入枠が低額ですが、審査のハードルも低く電話もかかってきません。すなわち、密かに即日キャッシングをすることができるということなのです。 午前にカードローン審査が済めば、お

    お金借りる 最終手段
  • existsの使用

    サブ・クェリーの中で、 where exists ( select ..... ) where not exists ( select ..... ) といった形式が使われることがある。 この形式では、内側のselectが、行を見つけることに成功すれば、existsは真を返す。 逆に、not exists は、内側のselectが検索に失敗した時に、真を返す。これまで見て きたサブ・クェリーとは異なって、外側のselectは内側のselectの返す項目の値を使わ ないので、existsは、通常、次の形式で用いられる。 where exists ( select * from ..... ) where not exists ( select * from ..... ) 次の例は、existsを用いた、「データベース」という文字を含む書名の書籍を出版した 出版社の検索例である。ほとんど同じ

  • ORACLE MASTER Bronze DBA講座(1) Oracleデータベース構造の基本

    ORACLE MASTER Bronze Oracle Database 10g」(以下Bronze)は、ORACLE MASTERの最も入門的な資格です。この資格の目的は、「SQL言語によってデータの操作や基的なオブジェクトが作成でき、かつOracleDatabase 10gをデータベース管理者の指導の下で管理操作が可能な知識を持つ技術者を認定する」ことにあります(参考記事:「Oracle10g対応のORACLE MASTERとは?」)。 Bronzeを取得するには、2つの試験に合格する必要があります。

    ORACLE MASTER Bronze DBA講座(1) Oracleデータベース構造の基本
  • Oracleで使うSQLの基礎を学ぶ

    2005年3月16日からは試験時間と問題数が変更されました。以前は120分で56問でしたが、問題数が少なくなり90分で40問になりました。ただし以前は71%だった合格点の割合は、変更後も70%ですので難易度は変わりません。問題数が少なくなった分、いかに各設問に正解するかが重要です。また、以前はオブジェクトの作成関連はほとんど出題されていませんでしたが、試験が変更されてからはかなりの問題数が出題されています。 ではBronze SQL 基礎 Iの範囲に沿って各種問題を解きながら解説していきましょう。 基的なSELECT文の作成 理解しておきたいこと 1. 確認しておきたい内容 SELECT文の機能 基的なSELECT文の実行 SQL文とiSQL*Plus(SQL*Plus)コマンドの区別 2. SQL文の区分 SQL(Structured Query Language:構造化問い合わせ言

    Oracleで使うSQLの基礎を学ぶ
  • 1