SQLに関するbleis-tiftのブックマーク (17)

  • SQL Serverに1億件のテストデータを高速に作成する - 開発思考実験日記

    SQL Serverに1億件を超える大量のテストデータを作成する必要がありできるだけ高速な方法を調べてみた。 ストプロを試してみる まずはストプロを作成してどの程度になる確認してみる。単純にループを回してINSERTを1件づつ行う方法でまずは100万件で試してみる。 ALTER PROCEDURE dbo.CreateData AS SET NOCOUNT ON DECLARE @RowCount INT SET @RowCount = 0 WHILE @RowCount < 1000000 BEGIN INSERT INTO TestTable VALUES (@RowCount, 'DATA' + right('0000000000' + convert(varchar, @RowCount), 10)) SET @RowCount = @RowCount + 1 END RETURN

    SQL Serverに1億件のテストデータを高速に作成する - 開発思考実験日記
    bleis-tift
    bleis-tift 2011/10/17
    再帰CTEでINSERTすると高速なのか。これはいいことを知った。
  • 忘れてしまったほうがいいSQLチューニングテクニックについて - 極北データモデリング

    10年ぐらい前はJavaで文字列を連結するときは String ではなく StringBuffer を使ったほうが速いなんて言われてたんだけど、それがテクニックとして有効だったのは「StringBufferを使えばこれこれの内部動作になる」という関係が固定されていたからで、仮にJVMのリビジョンによってどっちが速いかがコロコロ変わったり、文字列の長さが一定以上になると突然あっちの方が速くなったり、みたいな状態だったら「文字列の連結はStringBufferの方が...」はテクニックとして成り立たなくなってしまう。 が、SQLについての言説の一部はまさにこの状態で、来成り立たないことがチューニングテクニックとして語られていると思う。 そういうのを暗記するのはやめて実行計画を見ましょう、という話。 「INとEXISTSはどっちが速いか」の不毛 昔から「INを等価なEXISTSに書き換えると速

    忘れてしまったほうがいいSQLチューニングテクニックについて - 極北データモデリング
    bleis-tift
    bleis-tift 2010/10/06
    Javaのくだりはちょっと言いたいこともあるけど、大事なこと
  • SQLの勉強の必要性 - @katzchang.contexts

    枯れた技術だけど「正解」が見いだしにくいものの一つがSQL。だと思う。大抵のシステムで保守や性能のネックとなるのがDBアクセス部分だったりするし、かなり現実的、実践的な勉強会になるはず。 個人的論点は: とりあえず、表結合の条件をwhere句で書く人は爆発したまえ。 "select * from T;"対"select T.id, T.name, T.hoge_id from T;"とか 人工キーと複合キーなど 正規化とパフォーマンスとか 設定のチューニングとか スキーマ管理とか設計変更への対応とか「データベース・リファクタリング」とか O/Rマッピングとか トランザクション管理の「正攻法」とか 安全なデータモデリングのパターン的なやつとか 運用のtipsとか モデリング、クエリ、管理、運用のアンチパターンとか(たぶん一番盛り上がるw) OracleMySQL、PostgreSQL、SQ

    SQLの勉強の必要性 - @katzchang.contexts
    bleis-tift
    bleis-tift 2009/08/04
    SQL Serverの仲間外れっぷりに泣いたw / わーい、追加された!
  • 色々な見地があるものだなぁ、と - がるの健忘録

    元ネタはこちら。 上流の技術者はSQLを高いレベルで習得すべき http://el.jibun.atmarkit.co.jp/g1sys/2009/06/sql-9a31.html そこで、以前からの蒸し返しですが、「上流の技術者はSQLを高いレベルで習得すべき」と改めて一度、声を大にして言いたい。 ………はぁ。 えと…おいちゃんの個人的見解としては。 ・DBのスケールアウトが限りなく厄介な上に、複雑なSQLは、どう頑張ってもある程度以上性能が出ない ・業務ロジックが散らかると非常に困る ・そもSQLが「製品による方言」多すぎる ・DBMSは「1レイヤー」の来抽象化されるべきものだと思ってるので。入れ替えが面倒な状況は可能な限り忌避したい などの理由から。 質的にRDB(リレーショナルデータベース)を好んでません(言い切ったし)。 まぁ…厳密には。 「高いレベルのSQL」が何を指してい

    色々な見地があるものだなぁ、と - がるの健忘録
    bleis-tift
    bleis-tift 2009/06/19
    参考になる
  • SQL で数式を評価 (完全版 + α) - ぐるぐる~

    大阪で働く友人 mi との合作*1で不完全版が完全版に! やっぱり mi はすごかった!! WITH Input(id, str) AS ( -- idと数式を渡す SELECT 1, '1 + 3 / -8' UNION ALL SELECT 2, '2*3*4*5+99' UNION ALL SELECT 3, '4 * (9 - 4) / (2 * 6 - 2) + 8' UNION ALL SELECT 4, '1 + ((123 * 3 - 69) / 100)' UNION ALL SELECT 5, '2.45/8.5*9.27+(5*0.0023)' ) , Separators(i, ch, str_src, priority) AS ( SELECT 1, '-', 1, 1 UNION ALL SELECT 2, '+', 1, 1 UNION ALL SELECT

    SQL で数式を評価 (完全版 + α) - ぐるぐる~
    bleis-tift
    bleis-tift 2009/06/12
    大阪で働く友人miとの合作
  • SQL で数式を評価 (不完全版) - ぐるぐる~

    そういえば(このパターン多いな)、redditだかstackoverflowで、いろんな言語で文字列として与えられた数式をできるだけ短いコードで評価するってのがあったけど、SQLでできる?w Twitter / finalfusion: そういえば(このパターン多いな)、redditだかstack ... あったあった。これだ Code Golf: Evaluating Mathematical Expressions - Stack Overflow http://tinyurl.com/kreb75 Twitter / finalfusion: あったあった。これだ ... 1 + 3 / -8 = -0.5 (No BODMAS) 2*3*4*5+99 = 219 4 * (9 - 4) / (2 * 6 - 2) + 8 = 10 1 + ((123 * 3 - 69) / 100

    SQL で数式を評価 (不完全版) - ぐるぐる~
    bleis-tift
    bleis-tift 2009/06/09
    ここまでしないと数式の評価も出来ないのかよ(え / しかも括弧ネストできないのかよ(え
  • BNF Grammar for ISO/IEC 9075-2:2003 - Database Language SQL (SQL-2003) SQL/Foundation

    BNF Grammar for ISO/IEC 9075-2:2003 - Database Language SQL (SQL-2003) SQL/Foundation Cross-Reference: rules Cross-Reference: keywords Derived from file sql-2003-2.bnf version 1.11 dated 2005/07/13 18:37:30 Generated on 2005-07-13 18:37:56+00:00 by file bnf2html.pl version 3.7 dated 2005/07/13 18:32:35 Information taken from the Final Committee Draft (FCD) of ISO/IEC 9075-2:2003. However, t

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

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

    なぜMySQLのサブクエリは遅いのか。
  • SqlBulkCopy のベンチマーク - 記憶は削除の方向で

    .NET 2.0 で、大量のデータをインポートするクラス SqlBulkCopy が導入された。その性能を試してみたのでメモ。 テスト結果 試行したPCの性能は以下のとおり。 CPU : Pen4 2.4GHz , RAM : 512MB , OS : WinXPSP2 , DB : SQLServer 2005 Express 各データ数に対して連続で5回試行し、その平均をとってみた。 データ数 SqlCommand SqlBulkCopy 100 : 108.6 [ms] 15.0 [ms] 1000 : 990.2 [ms] 80.6 [ms] 10000 : 7999.6 [ms] 193.4 [ms] 100000 : 75634.0 [ms] 1696.4 [ms]1000件くらいなら1件ずつINSERTでも我慢できないレベルじゃないけど、1万件を超えると迷わず SqlBulk

    SqlBulkCopy のベンチマーク - 記憶は削除の方向で
  • SqlBulkCopy クラス (System.Data.SqlClient)

    using System.Data.SqlClient; class Program { static void Main() { string connectionString = GetConnectionString(); // Open a sourceConnection to the AdventureWorks database. using (SqlConnection sourceConnection = new SqlConnection(connectionString)) { sourceConnection.Open(); // Perform an initial count on the destination table. SqlCommand commandRowCount = new SqlCommand( "SELECT COUNT(*) FROM "

    SqlBulkCopy クラス (System.Data.SqlClient)
  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

    このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2023年10月時点の調査。

    bleis-tift
    bleis-tift 2009/03/24
    AA = Aーとか
  • Ywcafe.net

    Ywcafe.net This Page Is Under Construction - Coming Soon! Why am I seeing this 'Under Construction' page? Related Searches: Free Credit Report music videos Migraine Pain Relief Best Mortgage Rates Credit Card Application Trademark Free Notice Review our Privacy Policy Service Agreement Legal Notice Privacy Policy

    bleis-tift
    bleis-tift 2009/02/24
    PostgreSQLはあんま使わないけど
  • ドメインロジックとSQL:ベンチャー社長で技術者で:エンジニアライフ

    株式会社ジーワンシステムの代表取締役。 新しいものを生み出して世の中をあっといわせたい。イノベーションってやつ起こせたらいいな。 旧聞ですみません。 ドメインロジックとSQLというのは、Martin Fowler氏というアジャイル・XPの提唱者の1人が書いたブログ一説です。そこから、SQLを考えてみましょう。 ■Martin Fowler氏のブログについて この記事はMartin Fowler氏のブログを読んで頂かないと理解できない内容かもしれません。 Rubyをやったことのない人はちょっと戸惑うかも知れないが、ぜひ、先ずはMartin Fowler氏のブログからがんばって読んでください。 今回、Rubyを使ってサンプルを作っている。いつもはJavaやC#(アプリケーション開発者が読めるC言語ベースのプログラミング言語)を使うのだが、まあいいややっちゃえーって思ってやってみた。Rubyを選

    ドメインロジックとSQL:ベンチャー社長で技術者で:エンジニアライフ
  • parseerror.com - このウェブサイトは販売用です! - parseerror リソースおよび情報

    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.

    bleis-tift
    bleis-tift 2009/01/21
    「SELECT * するようなプログラムを書くなボケ」という話 by きむら(K)さん
  • XPもいいけれど、先ずはSQLが出来るようになるべき2:なにわのITベンチャー社長Blog - CNET Japan

    前回のつづき。 前回、SQL文というプログラムそのものを貼り付けたエントリーを書きました。 技術者が見れば下手糞な SQL と思うでしょうし、技術者じゃない人が見たら、訳の判らない文章になるでしょう。 あの SQL文という呪文は、文章を考えたときのまま書いたものです。 つまり、顧客が言い出しそうな変更を考えて、瞬間的にプログラムにし「下手糞なSQLやのう〜」と思いつつ、もっときれいなものが浮かんでも元のまま書きました。 下手糞ではありますが、打合せで話がでた瞬間にプログラムは脳内で完成しているからこそ、私は「出来ます。やります。」と即決できます。 逆に、その下手糞レベルのコーディングが出来なければ、私は怖くて顧客と話が出来ません。 「そんなものが出来るからどうした?」と思う方も大勢いらっしゃるでしょう。 しかし、これは非常に重要なのです。 前回のエントリーでの顧客の依頼を整理すると。 マー

  • XPもいいけれど、先ずはSQLが出来るようになるべき。:なにわのITベンチャー社長Blog - CNET Japan

    hisyamadaより: XPの導入をしようとした私はすぐに大きな壁に突き当たりました。それは「全員同席」と「ペアプログラミング」でした。全員同席とはユーザ、マネージャ、開発者が一箇所で開発を行うという考え方で、システム開発のスピードを加速させ、利害関係の不和を解消するために考え出された手法です。特筆すべきは顧客と開発者を同席させると言うもので、開発過程で明らかになる不明瞭な要求や仕様を、同席している顧客に即決させる[続きを読む] XPもよいと思うのですけれど、弊社はSQLにこだわっています。 一般的にDB(SQL)のスキルがなさすぎなんですね。 弊社の入社試験の変形型で説明します。 使われるテーブルは 得意先マスタ     得意先コード     得意先名     住所     ・・・ 受注テーブル     受注ID     受注日     得意先コード     ・・・ 受注明細テーブル

  • リレーショナル・データベースの世界

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

  • 1