タグ

SQLに関するokitaのブックマーク (23)

  • SQLアンチパターン勉強会

    はじめに 目的 こので勉強会する目的 語彙のシェア パターンの名前 「あ、これナイーブツリーだねー」みたいな Schema設計力向上 アンチパターンになっていないか?アンチパターンを使っているとしたらどうして?を設計段階から意識できるようにする アンチパターンを使ってもいい場合というのもの中にでてくる 対象範囲ではないもの このでは扱っていないこと(他の書籍で勉強してね☆) SQL構文について SQLの構文や用語に関する説明 正規化云々 パフォーマンス、スケーラビリティ、最適化 実践ハイパフォーマンスMySQL DB管理や運用 SQLRDBMS以外の代替技術について KVS MapReduce アンチパターンとは 問題の解決を意図しながらも、しばしば他の問題を生じさせてしまうような技法 すすめ方 週一で一章か二章毎 章毎に担当一人がまとめる 目安として2日前には Qiita へ投稿

    SQLアンチパターン勉強会
    okita
    okita 2021/06/30
  • 開発者のためのSQLパフォーマンスの全て

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

    開発者のためのSQLパフォーマンスの全て
  • 全テーブルの全列の値の検索方法について

    Oracleにおいて、全テーブルの全列に特定の値が入っていないかを調査することになりました。 やりたいことは、 「全テーブルの全列に特定の値(例:「あ」)が入っていないか?を調査する」です。 テーブル数は約200、全列数は約5000あります。 全列数分5000個のlike検索文を地道に作る方法以外に何かよい方法はありませんでしょうか。

    全テーブルの全列の値の検索方法について
  • Oracle で大量の insert を高速に処理する方法の検討

    久々に Oracle ネタです。以前 セッション管理に向いているデータベースは MySQL ? Oracle ? というエントリを書いたのですが、それとは別に insert の処理をどうしても高速化する必要に迫られました。今回高速化すべき要件として同一テーブルに大量のデータを一気に登録する作業です。いわゆる管理系業務で良くある csv のインポート的な機能に相当します。 さてそのような要件の場合、insert の方法は大きく分けて以下の方法が考えられます。それぞれどんなものかを知りたい方はエントリー最後の参考を読むと理解できると思います。 アプリ側から csv のデータを読み込んで for 文で件数分ループして insert する マルチテーブルインサート機能を用いて、1つの insert で複数データを一括登録する バルクインサート処理を行う PL/SQL を定義して一括登録する SQ

  • 新しい業界標準「SQL99」詳細解説

    オブジェクト指向、Javaを取り入れた 新しい業界標準「SQL99」詳細解説 第一章 高度なデータ操作(2) 高度なリレーショナル操作 SQLでは、以前よりも複雑で高度なリレーショナル操作が可能になっている。これにより、1つのSQL文で高度な処理が表現できるようになった。そうした新機能について紹介する。 ■共通表式 WITH句 SELECT文の結果も「表」なので、表名を書くところにはSELECT文をそのまま書くことができる。これはすでにSQL92が導入している「表式」という概念で、SELECT文のFROM句の中にもSELECT文を書くことができる。次の例は販売実績表から地域ごとに月・製品別売上額のその地域の売上に占める比率(百分率)を求めている。比率を計算するための分母(その地域の売上額合計)をFROM句中のSELECT文で計算していることに注目していただきたい。 SELECT S.地域名

  • MySQL AB :: Managing Hierarchical Data in MySQL

    "The Documents contained within this site may include statements about Oracle's product development plans. Many factors can materially affect Oracle's product development plans and the nature and timing of future product releases. Accordingly, this Information is provided to you solely for information only, is not a commitment to deliver any material, code, or functionality, and should not be reli

  • mysql:12071 階層化されたデータをMySQLで扱う

    From: zen kishimoto <zen kishimoto <zen@xxxxxxxxxx>> Date: Sat, 03 Sep 2005 09:24:15 -0700 Subject: [mysql 12071] 階層化されたデータをMySQLで扱う (Managing Hierarchical Data in MySQL) http://dev.mysql.com/tech-resources/articles/hierarchical-data.html (図はこのサイトを参照のこと) Mike Hillyer著 初めに 多くのユーザーは一回くらいはSQLデータベース内で、階層化したデータを 扱ったことがあると思います。そのときはリレーショナル データベースは階層化したデータ用に開発されなかったと考えたと思います。 リレーショナルデータベースのテーブルは階層化されておらず

  • 『[Oracle] LIKE 検索では全角の'%'、'_'も特殊文字として扱われる?』

    SQL で LIKE 条件を使うとパターン一致検索が実行できます。 この時、'%'と'_'はそれぞれ任意の文字列、任意の1文字を表す特殊文字として扱われます。 したがって、'%'や'_'という文字を検索したい場合は、エスケープ文字を使用して、文字としての'%'、'_'であることを明示する必要があります。 例えば、COL1 に'_'を含む TBL1 のレコードを検索したい場合は以下のように記述します。 SELECT * FROM TBL1 WHERE COL1 LIKE '%\_%' ESCAPE '\' と、ここまでは SQL の常識です。 しかし、実はこの'%'と'_'、全角の'%'、'_'でもやはり特殊文字として認識されてしまうのです。 つまり、 SELECT * FROM TBL1 WHERE COL1 LIKE '%_%' と記述すると、”任意の1文字を含む”となりますので、Nul

    『[Oracle] LIKE 検索では全角の'%'、'_'も特殊文字として扱われる?』
  • @IT:Oracle SQLチューニング講座

    連載では、Oracleデータベースのパフォーマンス・チューニングの中から、特にSQLのチューニングに注目して、実践レベルの手法を解説する。読者はOracleデータベースのアーキテクチャを理解し、運用管理の実務経験を積んでいることが望ましい。対象とするバージョンは現状広く使われているOracle9iの機能を基とするが、Oracle 10gで有効な情報も随時紹介していく。(編集局) 連載目次 パフォーマンス・チューニング概要 「パフォーマンス・チューニング」という言葉を聞いて、頭を抱えるデータベース管理者(以下、DBA)や開発者の方は多いのではないでしょうか。「難しそうで、あまり深い知識はない」あるいは「つらくて、大変な作業」というイメージを持っている方もいると思います。 しかし、一方では「特にパフォーマンス・チューニングを意識していない」という意見も聞かれます。これは、近年の目覚ましいハ

    @IT:Oracle SQLチューニング講座
  • Infoseek[インフォシーク] - 楽天が運営するポータルサイト

    人気再燃!ポケモンGOをより楽しむウェアラブルデバイス4選 街中で『ポケモンGO』を遊ぶにしても、スマートフォンを出したりしまったりしながら歩くのはなかなか難し…

    Infoseek[インフォシーク] - 楽天が運営するポータルサイト
  • CASE と DECODE 関数の違い - オラクル・Oracleをマスターするための基本と仕組み

    CASE 式 と DECODE 関数の違い 標準 SQL の CASE 式 とオラクルの SQL 特有の DECODE 関数は、ほぼ同じ機能をもち、CASE 式 も DECODE 関数 も短絡評価(※)であるが、この2つは NULL の取り扱い方で大きく異なっている。 (※) 短絡評価(ショートサーキット:short circuit evaluation):条件に該当するものが見つかると後続の条件は評価しない DECODE 関数 よく知られた非常に便利な変換関数、引数がある値のときに別の値に変換する関数である。 DEOCDE のパラメータ数の上限は 255 であり、当然条件指定はそれ以下(条件と結果で 2 パラメータのため 127 以下)になる。 CASE 式 もほぼ同数の上限がある。 検索 CASE 式 のように評価する式が個々に設定できないため、範囲指定などの条件指定が基的に行えない

  • SHIFT the Oracle - Oracle DBA, Oracle SQL and PL/SQL Tips

    Oracle DBA, Oracle SQL and PL/SQL Tips Top | Knowledge| DB構築| 文字列関数| 日付関数| 集計関数| SQL関数(アルファベット順) SQL(抽出・更新)| SQL*Plus| PL/SQL| Utility| Structure| スキーマ| チューニング| 用語| 参考書 SHIFT the Oracle オラクルマスターの取得や業務でオラクルを使って開発しているシステムエンジニアを目指している人のためのサイト オラクル入門者向けの Oracle SQL 入門、PL/SQL プログラミングから初歩的なチューニング・運用に関する情報、SQL のリファレンスやサンプル、Oracle Tips を取り扱っています IT News Oracle Database 18c XE 公開 Oracle Database Blog 2018/

  • なぜMySQLのサブクエリは遅いのか。

    よくMySQLはサブクエリが弱いと言われるが、これは当だろうか?半分は当で半分は嘘である。MySQLのサブクエリだってなんでもかんでも遅いわけではない。落とし穴をしっかり避け、使いどころを間違えなければサブクエリも高速に実行できるのである。今日はMySQLがどんな風にサブクエリを実行し、どのような場合に遅いのかということについて説明しよう。 EXPLAINで実行計画を調べた際に、select_typeにはクエリの種類が表示されるのだが、代表的なサブクエリには次の3つのパターンがある。 SUBQUERY DEPENDENT SUBQUERY DERIVED 結論から言おう。遅いのは2番目、DEPENDENT SUBQUERYである。DEPENDENT SUBQUERYとはいわゆる相関サブクエリに相当するもので、サブクエリにおいて外部クエリのカラムを参照しているサブクエリのことである。そし

    なぜMySQLのサブクエリは遅いのか。
  • 逆引きSQL比較

    Works > 逆引きSQL比較 逆引きSQL比較 [ 共通事項 ]  [ ORACLE ]  [ MSSQL ]  [ SSA ]  [ Postgres ]  [ MySQL ]  [ Jet ]  Last Updated. 14-May-2006 Since 08-May-2001 ■はじめに 複数の RDBMS を使った経験がある人なら、おわかりかと思いますが、SQLRDBMS によって異なる部分が結構あります。 このページは各 RDBMS における 基的な機能(主にSQLについて)の概要を、逆引きで、かつ平易な言葉で閲覧 する事を目的に作ったリファレンスです。 特定の RDBMS を持ち上げたり、貶めたりするのが目的ではないので誤解なきよう。 また、間違いについてのご指摘や『こうした方が効率的だ』などのご意見も大歓迎です。 対象としているのは以下の RDBMS

  • OTN Japan - 404 Error

    URLが下記の通り変更になりました。 お手数ですがブックマークなどの変更をお願い申し上げます。 10秒後、自動的にジャンプしますのでしばらくお待ちください。 ※ジャンプしない場合は、下記のURLをクリックしてください。 http://www.oracle.com/technetwork/jp/index.html

  • SQL -TECHSCORE-

    ここでは、リレーショナル型データベースを操作するために必須となる世界標準言語 SQL について、基礎から応用まで詳しく説明しています。 また、SQL のみにとどまらず、リレーショナルデータベースマネージメントシステム (RDBMS) の持つ様々な機能について詳しく説明しています。 最後には、データベースの設計に関する非常に重要な考え方についても触れていますので、これらを全て学習すると、データベースの操作から設計まで幅広い知識を身につけることができるでしょう。 SQL INDEX 1. データベースの概要 1.1. データベースとは 1.2. データベースシステムの特徴 1.3. データベースとファイルの違い 1.4. 代表的なデータモデル 1.5. リレーショナル型データベース 1.6. まとめ 2. SQL 2.1. SQL歴史 2.2. SQL とは 2.3. SQL の機能 2.

  • http://www.res-system.com/weblog/item/550

  • MySQLの最適化

    限りなく眠気を誘うPHP Internalsのセッションから逃げる。こっちの 講師はMySQL.comの人。講演慣れしていて、ずっとまともでプロフェッショナルな 感じ。午前中を逃したのが惜しいが、詳しいプレゼン資料は後日公開される らしい。 DELETEのコストはかなり高い 読みだしがすごく多い場合は無効化を示すフィールドを作りUPDATEすべき、 index更新のコストが馬鹿にならないSHOW STATUSの表示結果の解析方法 起動ごとに初期化、全データベースに共通rnd と rnd_next の割合Key_reads : Key_read_requests 、ディスクから読まれた回数:総回数 この割合が1:100より悪くなったら要注意Key_write_requests:Key_writes 総書き込み要求回数:ディスクに書き込ま れた回数 キャッシュの効果などMax_used_con

  • 忘れっぽいエンジニアのオラクルSQLリファレンス

    物忘れの激しい管理人は、調べたこともすぐ忘れてしまうので、同じことを、何度も調べながら開発しています。 ただ、IT業界は覚えることが多過ぎて、文法などの細かいことはあまり覚える気が無いというのもありますが(笑) そこで、何度も同じことを調べなくてもいいように、ORACLE SQLリファレンスをサイトにまとめる事にしました。 私と同じようなプログラマーやSEも結構いるんじゃないかと思いますので使えそうだったら利用してみて下さい。

  • SQLの抽出結果を階層構造で表示するテクニック

    連載はSQLの応用力を身に付けたいエンジニア向けに、さまざまなテクニックを紹介する。SQLの基構文は平易なものだが、実務で活用するには教科書的な記述を理解するだけでは不十分だ。連載は、著名なメールマガジン「おら!オラ! Oracle - どっぷり検証生活」を発行するインサイトテクノロジーコンサルタントを執筆陣に迎え、SQLのセンス向上に役立つ大技小技を紹介していく。(編集局) これまではSQL文の視認性を向上させるテクニックをご紹介してきましたが、今回は抽出結果の視認性を向上させる階層問い合わせをご紹介します。 階層問い合わせの基 階層問い合わせの一番よい例は実行計画だと思いますが、その前にまず階層問い合わせの基からおさらいしましょう。 SQL> select empno,ename,job,mgr,sal,comm from emp; EMPNO ENAME JOB MGR

    SQLの抽出結果を階層構造で表示するテクニック