タグ

sqlに関するjohshishaのブックマーク (4)

  • Sessionization in SQL, Hive, Pig and Python — Dataiku Academy 7.0 documentation

    Why sessionization?¶ Sessionization is the act of turning event-based data into sessions, the ordered list of a user’s actions in completing a task. It is widely used in several domains, such as: Web analytics. This is the most common use, where a session is composed of a user’s actions during one particular visit to the website. You can think of this as a buying session on a e-business website fo

  • 基礎から理解するデータベースのしくみ(2)

    図1●リレーショナル・データベース管理システム(RDBMS)が,受け取ったSQL文を実行するまでの処理の流れ SQL文を記述してデータベースを操作することはそれほど難しいことではありません。しかし,リレーショナル・データベース管理システム(RDBMS)が問い合わせを実行する速度は,SQL文の書き方によって大きく異なります。ちょっとした記述の違いによって,応答時間が何倍も違うことはめずらしくありません。 では,速いSQL文を書けるようになるためには,どうすればいいのでしょうか。その答えは,「RDBMSSQL文を内部でどのように処理しているのか」を理解することです。RDBMSは,プログラマが記述したSQL文を基にさまざまな処理を行ってから実際にデータベースにアクセスします。その過程を知ることで,アクセスのしかたをコントロールできるようになるのです。 例えば,CUSTOMERS(顧客)テーブル

    基礎から理解するデータベースのしくみ(2)
  • SQLの効率化 - Qiita

    SQLを高速化について、少し勉強したのでメモを残しておきます。 サブクエリを引数に取る時はINよりEXISTSまたは結合 SELECT * FROM A WHERE id IN(SELECT id FROM B); -- より SELECT * FROM A AA WHERE EXISTS(SELECT B BB WHERE AA.id = BB.id); -- の方が早い。もしくは SELECT AA.id, AA.name FROM A INNER JOIN B BB ON AA.id = BB.id; EXISTSは条件に合致するものを1行でも見つけたらそこで検索終了 INは全表検索してしまう 結合キーにインデックスが張られていればインデックス参照だけで済む ※PostgreSQLは7.4からIN述語にサブクエリが速度改善されている ※OracleはINを使ってもインデックススキャン

    SQLの効率化 - Qiita
  • 「相関サブクエリ」とは何かを理解して,複雑なSQLでも読めるようになろう - 主に言語とシステム開発に関して

    SQLの「相関サブクエリ」がわかれば・・・ 巨大なSQLが,迷わずに読めるようになる。 「関数」のような,便利なサブクエリを書けるようになる。 以下では, 「相関サブクエリ」とは何か? 普通のサブクエリ(非相関サブクエリ)やJOIN操作とは何が違うのか? 多重にネストされた,巨大なSQLの読み方は? という点を論じる。 サンプルデータ,および全体の方針 (1)サブクエリ無しでJOIN (2)INで非相関サブクエリ (2)の補足:サブクエリを「関数」と考えてみよう (3)EXISTSで相関サブクエリ 他のサンプル 巨大SQLの読み方 サンプルデータ,および全体の方針 まず,相関サブクエリの説明のために,以下のようなテーブルを例として取り上げる。 table1が,普通のデータ table2が,マスタデータ(ホワイトリスト) 「マスタに一致しないレコードをはじく」という操作をしたい。 方法は3パ

    「相関サブクエリ」とは何かを理解して,複雑なSQLでも読めるようになろう - 主に言語とシステム開発に関して
  • 1