タグ

sqlとtipsに関するTomohiroのブックマーク (6)

  • PreparedStatementAndNull

    312 :1/3:05/03/12 03:17:26 ID:??? 突然ですが,面白い SQL を思いついたので,ご意見を頂きたいです.興味を持たれた方は使ってみてくだちい。 一般的に,SQL の発行は,プリペアドステートメントを使う方がよいとされている.その理由は, DBMS のキャッシュが良く効く. SQL インジェクション等の危険が避けられる,等. しかし,webアプリの検索フォームなどでは,プリペアドステートメントは使えない場合が多かった.検索条件項目が複数存在していて,いずれの項目も必須で無い場合,項目が入力されているかどうかをチェックし,それに合わせてSQL 文の WHERE 句の内容をツギハギしなければならないからだ. SQL文そのものも,そしてそれにセットする引数の個数も可変なので,プリペアドステートメントを使うのは無理だったのである. 今回思いついたのは,このような条件で

    Tomohiro
    Tomohiro 2008/09/08
    すげぃSQL
  • 009BAR 【雑感】3値論理の積極的利用

    ちょっとおもしろい記事を発見 http://d.hatena.ne.jp/honeybe/20050320 記事の元ネタ http://pc5.2ch.net/test/read.cgi/db/1103113155/312-343n UNKNOWN を含めた真理値の演算は SQL92 で謳われてて、PostgreSQL ではサポートされてるらしい。で、それをうまく使うとデータベースアプリケーションで検索条件を動的に組み立てる煩わしさから解放されるってお話。 ↓↓↓ 簡単に書くと select * from table1 where column1 = @column1 and column2 = @column2 というクエリがあるとき、@column1 か @column2 が null だと結果セットは0件になる。 そこで仕方なく if @column1 is null とやり始める事

    Tomohiro
    Tomohiro 2008/09/08
    is not false
  • 1つのSQL文で複数の表にINSERTする絶品テクニック(1/2) ― @IT

    連載はSQLの応用力を身に付けたいエンジニア向けに、さまざまなテクニックを紹介する。SQLの基構文は平易なものだが、実務で活用するには教科書的な記述を理解するだけでは不十分だ。連載は、著名なメールマガジン「おら!オラ! Oracle - どっぷり検証生活」を発行するインサイトテクノロジーコンサルタントを執筆陣に迎え、SQLのセンス向上に役立つ大技小技を紹介していく。(編集局) FOR...LOOP文を使って、いくつものSQL文でデータをINSERTしているPL/SQLプロシージャやプログラムをよく見掛けますが、実は1度にデータをINSERTする方法もあるんです。マルチテーブル・インサート(Multitable Insert)とはその名のとおり、1つのSQL文で複数の表にINSERTが可能になります。この最大のメリットは、やはりパフォーマンスです。では早速ご紹介します。 マルチテーブ

    1つのSQL文で複数の表にINSERTする絶品テクニック(1/2) ― @IT
    Tomohiro
    Tomohiro 2008/09/08
    知らんかったよ。
  • ウノウラボ Unoh Labs: viの中でSQLを実行する

    こんにちは,ttsuruoka です. vi の中で SQL を実行することができるプラグイン, dbext.vimを紹介します. 機能(一部) - ex コマンドで SQL 文を入力して,その結果を取得 :Select user_id from users order by rand() limit 7 Result バッファに結果が表示されます - 選択したテキスト部分のSQLを実行 // プログラム中のSQL $query = "SELECT * FROM users LIMIT 10"; // 変数が含まれている場合 $query = "SELECT * FROM users LIMIT $n"; // プレースホルダーが含まれている場合 $query = "SELECT * FROM users LIMIT ?"; php 等のプログラムに書かれている SQL

  • PostgreSQL パフォーマンスチューニングまとめ - 徒然なるままにBlog

    PostgreSQLをチューニングする機会があったので その時に調べたチューニング項目を備忘録として残しておきます。 バージョンの違いやサーバの規模などによっても 効果は変わってくると思うのであくまで参考程度のものですが。 ・shared_buffers 7系では8000〜10000程度まで引き上げる 8系では150000程度まで引き上げることが可能、100000程度が性能のピーク これに多く割り当てるよりOSのバッファ領域として使う方が性能が向上する テーブルサイズを割り出して設定するのがベスト 簡単に設定するなら搭載メモリ量の1/4、搭載メモリが多ければ1/2ぐらいでも可 ・max_connections 7系では256程度、8系では1000程度が性能のピーク ・work_mem(sort_mem) 適切なサイズに調整する、2048〜4096程度 プロセス毎

  • 1