タグ

sqlに関するAinHandのブックマーク (18)

  • SQLトランザクション分離 実践ガイド | POSTD

    (注:2017/10/16、いただいたフィードバックを元に翻訳を修正いたしました。) (注:2017/10/11、いただいたフィードバックを元に翻訳を修正いたしました。) データベースのドキュメントで分離レベルを目にして、軽く不安を感じつつ、あまり考えないようにしたことはないでしょうか。トランザクションの日常の使用例できちんと分離について言及しているものはほとんどありません。多くはデータベースの初期設定の分離レベルを利用しており、後は運頼みです。しかし、来、理解しておくべき基的なトピックであり、いくらか時間を投入してこのガイドの内容を学習すれば、もっと快適に作業できるようになるでしょう。 私はこの記事の情報を学術論文、PostgreSQLドキュメンテーションから集めました。分離レベルの 何たる かだけでなく、適用の正確さを保持しつつ最大速度で使うにはいつ使うべきか、という疑問に答えるべ

    SQLトランザクション分離 実践ガイド | POSTD
  • 開発者のための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狙いのキー
  • MySQLのEXPLAINを徹底解説!!

    以前、MySQLを高速化する10の方法という投稿で「EXPLAINの見方についてはいずれ解説しようと思う」と書いてしまったので、今日はその公約?を果たそうと思う。 MySQLのチューニングで最も大切なのは、クエリとスキーマの最適化である。スキーマの設計は一度決めてしまうとそのテーブルを利用する全てのクエリに影響してしまうためなかなか変更することは出来ないが、クエリはそのクエリだけを書き直せば良いので変更の敷居は低い。そして遅いクエリをなくすことは、性能を大幅に向上させるための最も有効な手段である。従って、アプリケーションの性能を向上させたいなら、まず最初にクエリのチューニングを検討するべきなのである。 最適化するべきクエリはスロークエリログやクエリアナライザで見付けられるが、ではそのようなクエリが見つかった場合にはどのように最適化すればいいのか?そのためにはまず現在どのようにクエリが実行さ

    MySQLのEXPLAINを徹底解説!!
  • MySQLノウハウ

    いろいろなからメモってきたメモのメモ。出典を書いておくのを忘れた。思い出し次第補完するかも。 deleteのコストは高いので、無効化を示すフィールドを作ってupdateすべき slow query logに要注意 多くのエントリでほとんどのフィールドが同じ値を持つ場合はインデックスの効果が小さい →複合インデックスの効果が大きい 複合インデックスは指定の順番が大切。AとBという指定の場合、A単独でもインデックスの効果がある。逆は真でない。 インデックスが使われる場面は フィールド値を定数と比較するとき (where name = 'hogehoge') フィールド値でJOINするとき (where a.name = b.name) フィールド値の範囲を求めるとき (<,>,between) LIKE句が文字列から始まるとき (where name like 'hoge%') min(),

  • DBパフォーマンスチューニングの基礎:インデックス入門

    2. 自己紹介 下佐粉 昭 ( しもさこ あきら ) 和歌山県生まれ 2001年 IBMに中途入社 以来、DB2関連の仕事多し 現在はビジネスパートナー様向け技術支援 ■書籍 「即戦力のDB2管理術」 – http://db2.jugem.cc/?eid=2341 (書籍紹介) 「XML-DB開発 実技コース」(共著) 「DB2 逆引きリファレンス」(共著) ■オンライン Twitter - @simosako 全内容をWEBで公開しています – http://twitter.com/simosako http://db2watch.com/ Unofficial DB2 Blog – http://db2.jugem.cc/ 2 3. 今日のテーマ RDBのインデックスって? –インデクスを作成すると、速度が上がる! –インデックス作成はパフォーマンスチューニングのキモ! ...でも、な

    DBパフォーマンスチューニングの基礎:インデックス入門
  • ORACLE/オラクルSQLリファレンス(チューニング)

    サンプルコード付きの実践的なORACLE SQLのリファレンスを公開しています。

  • @IT:連載記事 「Oracle SQLチューニング講座」

    パフォーマンス向上の最短コースを知る Oracle SQLチューニング講座(1) SQLチューニングでDBパフォーマンスは数百倍も向上する。まずはRDBMSの構造を知り、チューニングの優先順位を理解しよう

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • Oracle/MySQL/PostgreSQLにおけるサブクエリを含むDMLの非互換性 - SH2の日記

    JPOUG Advent Calendar 2013の23日目です。比較的簡単なDMLでもRDBMS間の非互換性が出てしまうという怖い話をします。 +----+------+ | id | data | +----+------+ | 1 | a | | 2 | b | | 3 | c | +----+------+BEGIN; -- IDが最も小さいレコードをロックする SELECT id, data FROM q WHERE id = (SELECT MIN(id) FROM q) FOR UPDATE; (何らかの処理) -- 処理が終わったので削除する DELETE FROM q WHERE id = (1つ目のSQLで取得したID); COMMIT;IDが最も小さいレコードをロックし、何らかの処理を行って、最後にそのレコードを削除します。IDが最も小さいレコードを取得するというの

    Oracle/MySQL/PostgreSQLにおけるサブクエリを含むDMLの非互換性 - SH2の日記
  • Oracle 別表(別テーブル)から値をコピーして一括更新する

    Oracle 別表(別テーブル)から値をコピーして一括更新する 2006.08.01 Oracle 別のテーブルからフィールドの値をコピーしてUPDATEしたいときがある。 郵便番号の一覧表から、都道府県をコピーする。などというときに使う。 UPDATE時に、SELECT結果を用いるというやり方で実施する。 ■別表からコピーして行を更新する 自分の住所録の住所欄に郵便番号リストの住所をコピーする。(全ての行を一括で更新) SQL> UPDATE my_addr 2 SET jusho = (SELECT jusho 3 FROM zip_list 4 WHERE zip_no = my_addr.zip_no) ; 一部の行だけ変更したいとき。(WHEREで指定する) SQL> UPDATE my_addr 2 SET jusho = (SELECT jusho 3 FROM zip_li

    Oracle 別表(別テーブル)から値をコピーして一括更新する
    AinHand
    AinHand 2013/11/18
  • 大量のテストデータを快適に作る7つのコツ - 負荷テストのためにExcel&VBAをうまく使う - 主に言語とシステム開発に関して

    Webアプリケーションが実運用に耐えうるかどうかテストするためには, 大量のテストデータが必要になる。 規模にもよるが,場合によっては1テーブルあたり,数十万〜数百万レコードを要求されるだろう。 システムの負荷テストを実施する際には, (1): 「システムの内部に保有する負荷」つまり「DBの重さ」をまず作り出し, SQL実行性能を現実の運用状態に合わせてチューニングする。 (2): その後で,「システムの外部で発生する負荷」つまり同時アクセスをかける。これがサーバーの重さとなる。 そして各機能ページのパフォーマンスを測定する。 後者は,jmeterなどの便利なツールが存在する。 が,前者の「データ生成」に関しては,方法がそれほど確立していないように思える。 下記は,そういった大量のデータをうまく作るためのメモ。 (1) Excelでデータを作るべし (2) できれば Excelは 2007

    大量のテストデータを快適に作る7つのコツ - 負荷テストのためにExcel&VBAをうまく使う - 主に言語とシステム開発に関して
  • SQL入門

    あなたがSQLの初心者であれ、 SQLをちょっと復習したいデータ ウェアハウス業界の経験豊かな人であれ、いいところに来られました。この SQL教材のサイトは、よく使われる SQL コマンドが掲載してあります。このサイトは以下のように分かれます。 - SQL コマンド: SQL がどのように保存、読み込み、又はデータベース内のデータ処理に使われること。 - テーブル処理: データベース内のテーブル作成にSQL がどのように使われること。 - SQL プログラミング: 当該教材に提示される SQL プログラミングを示すページ。 各コマンドについては、あらかじめ、当該プログラミングを示し、説明します。それから、そのコマンドの使い方をよく理解させるように、例を一つ挙げます。このサイトにおけるすべての教材を読み終えたとき、 SQL プログラミングについて、大まかな理解ができるはずだと思います。 そし

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

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

    AinHand
    AinHand 2010/07/06
  • 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.

    AinHand
    AinHand 2010/07/06
  • accessclub.jp - このウェブサイトは販売用です! - アクセスクラブ リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

  • ◇ SQL構文 について◇

    SQL構文 ● いわゆる覚え書き。自分が学んだことを忘れないように残しておこうと思います。 ● 目次 ● ・ はじめに ・ SELECT〜FROM で単一列データを取り出すには ・ SELECT〜FROM で複数列データを取り出すには ・ AS句を使って列に別名をつけるには   ・ WHERE句で条件を絞り込むには ・ 比較演算子一覧 ・ 指定した文字列が含まれるかを調べるには (LIKE演算子) ・ 指定した文字列が含まれないかを調べるには (NOT LIKE演算子) ・ INNER JOIN ・ DISTINCT ・ DELETE ・ UPDATE ・ INSERT ・ 税抜きの価格を取り出し税込価格として取得するには ・ 列と列の演算結果を別名で表示するには ・ 列と列の連結を行うには ・ 列と文字列の連結を行うには ・ 平均値を取得するには(AVG) ・ 最大値を取得するには(MA

    AinHand
    AinHand 2009/11/18
    箇条書きでとってもおいしいです
  • SQLの基礎 「SELECT」文を覚えよう

    記事のおもな内容 いろいろあるSQLの規格 サンプルデータベースを操作してみる SELECT文の基的な使い方 WHERE句の使い方 条件の指定方法 リレーショナルデータベースシステム(RDBMS)も、今や、システムの構築には不可欠なものとなりました。皆さんが目にしているシステムや、管理しているシステムでも、RDBMSが使われていないシステムを探すほうが大変ではないでしょうか。RDBMSの普及にともない、RDBMSへのアクセス手段であるSQLも、日常的によく見かけるものとなりました。 このSQL実践講座では、SQLの効率的な使い方をエッセンスにしてお伝えしていこうと考えています。SQLは、データを操作するために非常に簡単な構文で構成されているように見えます。ところが、実際に使い込んでいくと、一見簡単に取得できるように見えるデータが取得できない場面にぶち当たることがあると思います。また逆に

    SQLの基礎 「SELECT」文を覚えよう
  • 1