キムラデービーブログ

オープンソースデータベースを加速する「キムラデービー」のブログです。カレー日記を兼ねてます。なお著者は2010-06-01より日本オラクルに在籍していますが、本サイト(ブログ、またはウェブサイト)において示されている見解は、私自身の見解であって、オラクルの見解を必ずしも反映したものではありません。
<< 野菜カレー | main | 読書会第47回メモ(Top k Queries) >>
分散DB本読書会第46回メモ「STOP AFTER 10」
0
    実は一年以上前から隔週で「Principles of Distributed Database System」という本の読書会にでています。

    多くの気づきとタイポと、やるべき課題が見付かるのですが、毎回飲んでは忘れてしまうというていたらくで、どうにもまとまる気がしません。なので、今回からメモを残していくことにします。木村自身はデータベースの専門教育をうけたことがないので、いろいろ間違いもあるかと思いますが、その点はコメントやtwitter/facebookにてつっこんでいただければ修正します。

    分散DB本読書会第46回: 16.2 Schema Mapping in P2P System(p.624)-16.3.1.1 Basic TechniquesのThreshould Algorithm(TA) (p.632)

    top-k Queriesのサンプルクエリ(p.629)に以下のようなものがありました。

    SELECT *
    FROM Patient P
    WHERE P.disease = ''diabetes''
    AND P.height < 170
    AND P.weight > 160
    ORDER BY scoring-function(height, weight)
    STOP AFTER 10

    "STOP AFTER 10"は見たことのない記法ですが、みるからにLIMIT 10ですよね。。。。
    ググってみるとIBM Almaden Research Center の Michael J. Careyらが提案していた
    LIMIT相当の機能のようです。

    Reducing the Braking Distance of an SQL Query Engine

    On Saying “Enough Already!” in SQL

    結局実装としてはMySQLが先行し、SQL標準になったのはSQL:2008なのでRDBMSの最近のバージョンでしかまだサポートされていません。

    IBMの人が提案していたのだから、そのままDB2でSTOP AFTER句が実装されていれば、
    いろいろスムーズだったと思うのですがねぇ。

    Typo:
    p.627 Fig. 16.9 右側のCSD1がCSD2では?

    これは「Handbook of Peer-to-Peer Networking」のp.554に「Fig 15 Common Agreement Schema Mapping in APPA」に同じ図画CSD2で掲載されている。

    JUGEMテーマ:コンピュータ


    | meijik | 分散データベース | 23:17 | comments(1) | trackbacks(0) | - | - |
    木村さん、こんにちは!

    「SQL標準になった」と言われている FETCH FIRST n ROWS ONLY は、2001年3月リリースの DB2 for OS/390 and z/OS V7.1 や 2001年4月リリースの DB2 for IBM i V5.1 ですでにサポートされています。(たとえば→ http://publib.boulder.ibm.com/html/as400/v5r1/ic2962/index.htm?info/db2/rbafzmstintsel.htm

    DB2ではその頃からずっと使われているので「最近のバージョンでしかまだサポートされていない」わけではないんですよ。

    また、DB2 ではこの FETCH FIRST n ROWS ONLY がサポートされるより前に、カーソルの定義の一部として OPTIMISE FOR n ROWS というものがサポートされていました。

    昔は SQL と言えばカーソルでデータ取得を COBOL なり C なりで行うコーディングが主だったので、ORDER BY の指定順に並んだ結果セットに対して FETCH をループさせる構造になってましたよね。もし、仕様上 2行しか必要なかった場合、それ以降のデータは無駄になってしまうわけですよね。

    これを避けるためにオプティマイザーにあらかじめ伝えておき、それ以上データを取ってこない、というのが OPTIMISE FOR n ROWS の目的です。
    たとえば、OPTIMISE FOR 10 ROWS という指定であれば ORDER BY の指定順で 10件分だけを取ってくるような実行計画を作る、ということです。

    ですから、実質 STOP AFTER n になっているんですね。

    OPTIMISE FOR n ROWS がいつからあるかはちょっとわかりませんでしたが、上記リリースの DB2 のすぐ前のバージョンでは確実にありました。

    ということで、IBM では相当昔から(少なくとも1990年代から)こうした機能をサポートしてたんですよ。
    なので、「IBMの人が提案していたのだから」のお話はちょっと違うと思います(笑)

    標準化に時間がかかったのは、まぁいろんな事情があるんでしょうね。Oracle も Sybase もそれぞれのやり方で似たようなことができていましたし、SQL:2003 で ROW_NUMBER や RANK がサポートされたことで自由に行の選択もできるようになったので優先順位があまり高くなかった、というようなことなのかもしれません。

    あと、MySQL の LIMIT がいつからあるのかは知らないのですが、Oracle や Sybase にも似たようなものもあったので、必ずしも「実装としてはMySQLが先行」というわけでもないような? とちょっと思いました(笑)

    とりあえず、そんな事実もあります、ということでのコメントでした。よろしくお願いします。
    | masudahidehiko | 2015/09/01 2:13 AM |









    トラックバック機能は終了しました。
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
    << March 2024 >>
    + RECOMMEND
    100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊
    100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊 (JUGEMレビュー »)

    100人のうちの一人としてミックさんの本を推薦しています。
    + RECOMMEND
    MySQL 5.1 Plugin Development
    MySQL 5.1 Plugin Development (JUGEMレビュー »)
    Andrew Hutchings,Sergei Golubchik
    MySQL 5.1 のプラグインを作るならこれ!
    + RECOMMEND
    AWKを256倍使うための本 (Ascii 256倍)
    AWKを256倍使うための本 (Ascii 256倍) (JUGEMレビュー »)
    志村 拓,鷲北 賢,西村 克信
    ここにきてまさかの復刊。15〜16年前の本ですが、いまでも十分役立ちますよ!!
    + RECOMMEND
    Linux-DB システム構築/運用入門 (DB Magazine SELECTION)
    Linux-DB システム構築/運用入門 (DB Magazine SELECTION) (JUGEMレビュー »)
    松信 嘉範
    Linux-DB システム構築の新スタンダード。DB Magazine人気連載、待望の書籍化です!!
    + RECOMMEND
    + RECOMMEND
    超・極める!MySQL
    超・極める!MySQL (JUGEMレビュー »)
    坂井 恵,志村 和彦,ひろせ まさあき,松信 嘉範
    内容は少々古くなりましたが、内部説明があり、いろいろ面白いです。
    + RECOMMEND
    The Root of .NET Framework
    The Root of .NET Framework (JUGEMレビュー »)
    荒井 省三
    .NETの根っこをつかむ、か?
    + RECOMMEND
    エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド
    エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド (JUGEMレビュー »)
    奥野 幹也
    これまでにない構築、そして構築後のMySQLのための本。
    + RECOMMEND
    Database Management Systems
    Database Management Systems (JUGEMレビュー »)
    Raghu Ramakrishnan,Johannes Gehrke
    ミックさん連載の参考書籍です。
    + RECOMMEND
    Advanced Programming in the UNIX Environment: Paperback Edition (2nd Edition) (Addison-Wesley Professional Computing Series)
    Advanced Programming in the UNIX Environment: Paperback Edition (2nd Edition) (Addison-Wesley Professional Computing Series) (JUGEMレビュー »)
    W. Richard Stevens,Stephen A. Rago
    必読! といいつつ私が読んだのは初版の日本語訳です。差分はチェックしないといけませんね。
    + RECOMMEND
    + RECOMMEND
    + RECOMMEND
    Western Digital Scorpio Blue 2.5inch 5400rpm 320GB 8MB PATA WD3200BEVE
    Western Digital Scorpio Blue 2.5inch 5400rpm 320GB 8MB PATA WD3200BEVE (JUGEMレビュー »)

    DELL SX260の換装用に購入。今はコチラのほうが安いですね。
    + RECOMMEND
    情熱プログラマー ソフトウェア開発者の幸せな生き方
    情熱プログラマー ソフトウェア開発者の幸せな生き方 (JUGEMレビュー »)
    Chad Fowler
    OSC2010神戸に出展されたジュンク堂で買いました。
    + RECOMMEND
    Software Design 総集編 【2000~2009】(DVD付)
    Software Design 総集編 【2000~2009】(DVD付) (JUGEMレビュー »)

    メガトン級の過去記事。売り切れる前にお店に急げ!
    + RECOMMEND
    + RECOMMEND
    玄人志向 2.5型HDDケース SATA対応USB2.0接続 GW2.5AI-SU2
    玄人志向 2.5型HDDケース SATA対応USB2.0接続 GW2.5AI-SU2 (JUGEMレビュー »)

    Aspire 1410 HDD換装後、昔のHDDはこれにいれます。
    + RECOMMEND
    + RECOMMEND
    acer Aspire Timeline AS1410 11.6型ノートPC Windows7搭載 250GB ブラック AS1410-KK22
    acer Aspire Timeline AS1410 11.6型ノートPC Windows7搭載 250GB ブラック AS1410-KK22 (JUGEMレビュー »)

    色違い黒(他に青と白があります): メモリは最大4GBとあるが、がんばれば8GBいけるらしい。
    + RECOMMEND
    Firebird 徹底入門
    Firebird 徹底入門 (JUGEMレビュー »)
    木村 明治,はやし つとむ,坂井 恵
    Firebird日本ユーザ会のはやしさん、そしてMyNAから拝借(?) してきた坂井さんとともに書きました。まだ誰も知らないFirebird 2.5や、いままでドキュメントのなかったツール類についてもソースを確認してとりあげた本です。是非ご活用ください。
    + SELECTED ENTRIES
    + RECENT COMMENTS
    • 最新のSQL標準(SQL:2023)とFirebird/MySQL/PostgreSQL
      kitayama_t (12/24)
    • オープンセミナー2008@岡山
      meijik (10/15)
    • 2022年のFirebird
      tetsuyat@ac.wakwak.com (01/24)
    • 内藤 陽哉(ないとうようや)先生を偲んで
      高村京夏 (11/07)
    • 「エイリアンズ」から入る人のための極私的「キリンジ/KIRINJI」入門
      meijik (05/02)
    • 「エイリアンズ」から入る人のための極私的「キリンジ/KIRINJI」入門
      k (05/01)
    • Firebird 4.0のレプリケーション(6) 非同期レプリケーション
      小林正樹 (12/02)
    • MySQL ProとMySQL Expertを立ち読みする+α
      MEIJI KIMURA (09/14)
    • たまたま「プリントヘッドの種類が違います」エラーから復活@MG6230
      meijik (11/20)
    • [ミュージシャンに聴かせたい・弾かせたい!] (4) 山田元気様
      meijik (07/27)
    + RECENT TRACKBACK
    + CATEGORIES
    + ARCHIVES
    + MOBILE
    qrcode
    + LINKS
    + PROFILE