タグ

sqlに関するoasis440のブックマーク (15)

  • ファントムリードは起こらないのにSEIRIALIZABLEでない、それがポスグレのREPEATABLE READ - Qiita

    ファントムリードは起こらないのにSEIRIALIZABLEでない、それがポスグレのREPEATABLE READPostgreSQLトランザクション トランザクション分離レベル、苦手意識を拭えない方はわりといらっしゃるんじゃないかと思います。なにしろ私がそうですからね! だから題の前にまずはおさらいから入りましょう。 トランザクション SQLのすべて成功するか最初からなかったことになるかしかないように管理された一連の操作のことをトランザクションと呼びます。 Javaのsynchronizedブロックのようなものをイメージしてしまうこともあるかもしれませんが、それは全然違いまして、トランザクションの進行中にもほかのセッションによってDB内のデータは刻々と書き換えられていきます。最初からなかったことにできる、それだけがトランザクションの特徴ですから。 トランザクション分離 しかし進行中にどん

    ファントムリードは起こらないのにSEIRIALIZABLEでない、それがポスグレのREPEATABLE READ - Qiita
  • カンム社員全員でSQL勉強会をやっている話

    株式会社カンム では、毎週火曜日17:00 - 18:00の時間をとって全員参加のSQL講座をやっている。2018/4から続けているのでそろそろ10ヶ月程経過するのでどのように継続してきたか、どのような効果があったか等を書く。 前提 カンムは バンドルカード というサービスを提供しており、2019/01末時点で正社員13名のまだ小さなチーム。このSQL講座開始当時、SQLを業務で書ける人員は社長を含め5名くらいだった。また、redash番/検証ともに整備されており、以前は主要KPIのダッシュボードは社長の 8maki と自分が作ってた。 バンドルカード自体を作ってる様子はこちら。 バンドルカードを作ってる by achiku バンドルカードができるまで by ideyuta 発端 自分がソフトウェアエンジニアからマーケティング側に移籍した話は 前回書いた。長いのでまとめると、今まで5

    oasis440
    oasis440 2019/02/26
  • Rails SQL Injection Examples

    Overview The Ruby on Rails web framework provides a library called ActiveRecord which provides an abstraction for accessing databases. This page lists many query methods and options in ActiveRecord which do not sanitize raw SQL arguments and are not intended to be called with unsafe user input. Careless use of these methods can open up code to SQL Injection exploits. The examples here do not inclu

  • ElastisearchをSQLでクエリー可能にするプラグイン - Qiita

    Elasticsearchを使う上で標準のDSLであるストラクチャードクエリーを書くことは避けて通れません。しかしこのJSON形式のDSLはもともと機械が理解するためのもの...人間が書くには辛すぎます。ネストが増えるたびに上に行ったり下に行ったり、目を凝らしてカッコの対応を確認したり...。使い慣れたSQLで問い合わせができたらどんなに楽だろうと思ったあなた!そんな便利なプラグインが存在します。 elasticsearch-sqlの導入 Elasticsearchのプラグインの導入はコマンド一発なので簡単です。ESのバージョンによってバイナリが違うので注意してください。導入後はESの再起動が必要です Elasticsearch 1.X ./bin/plugin -u https://github.com/NLPchina/elasticsearch-sql/releases/downlo

    ElastisearchをSQLでクエリー可能にするプラグイン - Qiita
  • 分析SQLのコーディングスタイル - クックパッド開発者ブログ

    SQL、書いてますか? こと大規模データ処理の分野においてはSQLはもはや標準インターフェイスであり、 分析やらバッチやらに関わっている皆様は日々大量のSQLクエリーを生産していることと思います。 そこでちょっと気になるのが、 SQLのコーディングスタイルってどうするのが一般的なんだっけ……? という点です。 イマドキはSQLなんてO/R mapperに吐かせることが多いからなのか、 それともコードを広い範囲で共有することがそもそもないからか、 SQLのコーディングスタイルについて見聞きすることは他のプログラミング言語に比べるとだいぶ少なく、 いまいち決定版と言えるスタイルがないなと感じています。 そんなわけで日は、SQLのコーディングスタイルについての意識を活発化させるべく、 クックパッドでわたし(青木)が使っているコーディングスタイルから特徴的な点を紹介したいと思います。 特に、分析

    分析SQLのコーディングスタイル - クックパッド開発者ブログ
  • 新著が出ます:『プログラマのためのSQLグラフ原論』 - ミックのブログ

    今月下旬に、J.セルコの『Trees and Hierarchies 2nd Edition』の邦訳が刊行されます。同著者の代表作『プログラマのためのSQL 第4版』のスピンオフの一つで、RDB/SQLで木と階層構造を扱うための方法論にフォーカスしたなかなかマニア度の高い一冊です。主眼となる「入れ子集合モデル」については、私もあちこちの記事や書籍で紹介したことがあるので、ご存じの方もいるかもしれませんが、より包括的かつ理論面までカバーした格派の内容になっています。 表紙の女性はマリア様でしょうか。家の方が刊行されたときも「このおっさん誰?」という質問が相次ぎましたが、ガリレオという説が有力なようです。そう言われてみると家は『星界の報告』のような格調を感じます。書の方は、長らく定説とされてきたモデルをひっくり返そうという意味では『天体の回転について』みたいな性格もあるのですが、大型

    新著が出ます:『プログラマのためのSQLグラフ原論』 - ミックのブログ
    oasis440
    oasis440 2016/08/12
  • 10 SQL Tricks that You Didn't Think Were Possible

    SQL is the winning language of Big Data. Whether you’re running a classic relational database, a column store (“NewSQL”), or a non-relational storage system (“NoSQL”), a powerful, declarative, SQL-based query language makes the difference. The SQL standard has evolved drastically in the past decades, and so have its commercial and open source implementations. In this fast-paced talk, we’re going t

    10 SQL Tricks that You Didn't Think Were Possible
    oasis440
    oasis440 2016/04/26
  • あなたが知らない リレーショナルモデル

    関西DDD.java 勉強会 2016-3-5 (DDD Alliance 勉強会 2016-1-21 @東京の京都再演版)

    あなたが知らない リレーショナルモデル
  • 開発者のためのSQLパフォーマンスの全て

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

    開発者のためのSQLパフォーマンスの全て
  • 初級〜中級者のためのSQL特訓 - 忘れないようにメモっとく

    ほぼほぼ初心者でSQLの練習がしたいっていう人、知識の再確認をしたい人にオススメのサイト。 SQLZOO ブラウザ上で動作するので、めんどくさい環境設定もなし。 データベースも、MySQLOracleSQL Server、Postgre、Ingres、DB2から選べる。 簡単なSELECT文から始まって、SUMやCOUNTみたいな基的な関数の問題や、JOINを使ったちょっと難しめの構文もある。 実行環境付きのリファレンスもあるのがよい!(超便利!)

    初級〜中級者のためのSQL特訓 - 忘れないようにメモっとく
  • InfluxDB | Real-time insights at any scale | InfluxData

    InfluxDB enables real-time analytics by serving as a purpose-built database that optimizes processing and scaling Choose the Right Product See Performance Comparison Platform Overview Open Data Access Real-Time Analytics Easy Data Collection Integrations

    InfluxDB | Real-time insights at any scale | InfluxData
  • Oracleデータベースの深層(5)− Enabling Trace with Event 10046 - /* Grid Thinking */

    SQLトレースの有効化 いくつの方法でトレースを有効にできます。 ・インスタンスレベルのトレース ・トリガーを利用したトレース ・セッションレベルのトレース ・ログイン中のセッショントレース ・その他のセッションのトレース (1)インスタンスレベルのトレース 下記のパラメータをPFILEに設定することでトレースを有効化できます。 trace_enabled = TRUE 全てのセッションとバックグラウンドプロセスも含めトレースを有効にします。 このパラメータを設定すると大量なトレースログが生成され、大量なシステム リソースが消費されます。トレースファイルの保存場所はUSER_DUMP_DESTに依存します。 10046イベントを利用することでインスタンスレベルのトレースも有効化可能です。 例:下記の行をPFILEに追記することで10046イベントのレベル8で有効化可能 &nbspevent

    Oracleデータベースの深層(5)− Enabling Trace with Event 10046 - /* Grid Thinking */
  • サロゲートキーと「とりあえずID」の違い - 設計者の発言

    サロゲートキー(代理キー)は慎重になされる限り、有用なテクニックである。いっぽう、すべてのテーブルに機械的にIDを置く「とりあえずID(IDリクワイアド)」の設計スタイルでは、複雑なデータ要件を扱った途端にひどい目にあう(とくに保守担当者が)。両者の違いをしっかり理解しておこう。 何でもいいのだが、ここでは生産管理システムで見かけそうなシンプルなモデルを使って説明しよう(図1)。「作業区・品目」は、それぞれの作業区で生産可能な品目の組み合わせと、その品目を扱った際の生産性(時間あたり生産数)の管理簿である。 <図1> [工程]工程id,工程名,扱い単位 +   ̄ ̄ ̄ |   001 切削  個 |   002 加工  m | └―∈[作業区]工程id,行番,作業区名,標準生産性 +    ̄ ̄ ̄ ̄ ̄ ̄ |    001 01  切削1号 1000/hr |    001 02  切削2号 2

    サロゲートキーと「とりあえずID」の違い - 設計者の発言
  • 第一の大罪(1) ~ データベースアプリケーションのパフォーマンスにおける七つの大罪

    第一の大罪は''データベースの物理設計''に関するもので、たとえばスキーマ設計の問題、テーブルの列の順序、インデックス付け、データベースページサイズの選択など、パフォーマンスに悪影響を及ぼしかねない重要な要因はいくつも考えられます。今回の記事では、SQL Anywhereのデータベース設計にまつわる具体的な問題と、ドメイン(定義域)の概念に関する内容を取り上げていきます。 ドメイン(定義域)とは ドメインの概念は、E. F. Coddが発案した最初のリレーショナルデータモデルに含まれています。Chris Dateは、彼の重要な著書 [1, pp. 81] の中でドメインを次のように定義しています。 次に、ドメインという言葉を、すべて同じ型の、スカラー値の名前付きの集合と定めることにする。たとえば、サプライヤー番号のドメインは、サプライヤー番号として取り得るすべての番号の集合になり、出荷数量

    第一の大罪(1) ~ データベースアプリケーションのパフォーマンスにおける七つの大罪
  • SQLパフォーマンス問題調査でEXPLAIN PLAN、SQLトレースは(ほとんど)使わない « WR blog

    December 2014 (1) February 2014 (1) January 2014 (1) September 2012 (1) April 2012 (1) March 2012 (2) October 2011 (1) June 2011 (5) May 2011 (1) April 2011 (1) March 2011 (1) February 2011 (1) January 2011 (1) December 2010 (1) September 2009 (1) April 2009 (1) March 2009 (1) January 2009 (3) November 2008 (2) October 2008 (1) December 2005 (2) October 2005 (2) September 2005 (2) August 2005 (7)

  • 1