PostgreSQLカンファレンス2013 LightningTalk (2013-11-13: migr8.rbの設定箇所を若干修正) (2013-11-14: SQLite3での設定等を修正、「migr8.rb new --table=users」を追加)
2013年06月11日01:35 カテゴリSQLデータベース 「スパゲッティクエリ」の解決策は断じて「ぐるぐるクエリ」ではない!! 『SQL アンチパターン』という本に「スパゲッティクエリ」というアンチパターンが載っています。(17章) 名前だけでなんとなくわかった気になるアンチパターンなのですが、実はその「わかった気」は違っているのでは?! というのが今回のお話です。 「マッチョなクエリ」 以前、『SQL アンチパターン』を題材にしたセミナーに出たことがありました。 その時、参加者がこのアンチパターンについて「マッチョなクエリはよくない」とか「複雑なSQL はよくない」といった感想をもらしているのを聞きました。 そのまま続けていろいろ聞いていると、どうも「単純な SELECT などをプログラムのループでまわして結果を取得した方が、SQL のいろんな機能を使うよりいい」というようにこの「ス
(PgDay2012発表資料) SQLにとって、なぜO/Rマッパーが重要かを説明した資料です。Read less
Ringとは、リクルートグループ会社従業員を対象にした新規事業提案制度です。 『ゼクシィ』『R25』『スタディサプリ』など数多くの事業を生み出してきた新規事業制度は、 1982年に「RING」としてスタートし、1990年「New RING」と改定、そして2018年「Ring」にリニューアルしました。 リクルートグループの従業員は誰でも自由に参加することができ、 テーマはリクルートの既存領域に限らず、ありとあらゆる領域が対象です。 リクルートにとって、Ringとは「新しい価値の創造」というグループ経営理念を体現する場であり、 従業員が自分の意思で新規事業を提案・実現できる機会です。 Ringフロー その後の事業開発手法 Ringを通過した案件は、事業化を検討する権利を得て、事業開発を行います。 さまざまな事業開発の手法がありますが、例えば既存領域での事業開発の場合は、 担当事業会社内で予算や
達人に学ぶ SQL徹底指南書 (CodeZine BOOKS) 作者: ミック出版社/メーカー: 翔泳社発売日: 2008/02/07メディア: 単行本(ソフトカバー)購入: 46人 クリック: 938回この商品を含むブログ (74件) を見る 気になっていたSQL本を買って読み進めてるんですが早速気になったところがありました。演習問題で自己結合してUPDATEする問題があるんですが、これMySQLだと動きません。 問題例 下のテーブルのrankingを埋める。 Productsテーブル name price ranking トマト 100 null キャベツ 120 null ネギ 80 null レタス 100 null ニンジン 80 null ピーマン 50 null UPDATE後のテーブル name price ranking キャベツ 120 1 トマト 100 2 レタス
いろいろなところで紹介されているように 普通に $condition の中にぶちこめばいけるんですが、 こんなかんじ $this->モデル->findAll( $conditions = “GROUP BY title”, $limit = “” ); 例えばINとか、LIKEとか使ってごりごりやっていくときって Array で $condition つっこむのでそれのやり方のお話 普通にやると $this->モデル->findAll( $conditions = array(‘Table.uid’ => Array , ‘GROUP BY Table.title’), $limit = “” ); こんなかんじで、Arrayの一つとして GROUP BY を渡せばいいと思うんですが、 これじゃうまくいきません。 なぜなら Array の要素はすべて AND でつなげてしまうから。 つまり
CakePHP 1.1.13.4450 + PHP 5系 + MySQL 4.1系にてテスト Job モデルは com_id フィールドがあって Com モデルに belongsTo Job を一覧表示するときに Com の name フィールドも表示したい Job.idJob.nameJob.com_id 1仕事A1 2きつい仕事2 3楽な仕事1 Com.idCom.name 1会社A 2会社B というデータから、 Job.idJob.nameCom.name 1仕事A会社A 2きつい仕事会社B 3楽な仕事会社A こんな感じの一覧を表示したいわけです。どうするのが効率が良いか。まず、Job モデルのアソシエーションを以下のように設定。 <?php class Job extends AppModel { var $name = 'Job'; var $belongsTo = array(
NOTE! THIS DOCUMENT NO LONGER APPLIES. Newer versions of HBase use a different Shell See shell for the new shells description. NOTE! THIS DOCUMENT NO LONGER APPLIES. Newer versions of HBase use a different Shell See shell for the new shells description. NOTE! THIS DOCUMENT NO LONGER APPLIES. Newer versions of HBase use a different Shell See shell for the new shells description. Hbase Shell Intr
図1●今回取り上げるSQL文の注意点<BR>(1)日付型,(2)SUMやAVGなどの集約関数,(3)GROUP BY句とHAVING句――今回はこの3点にまつわるSQL文の注意点を説明する 図2●日付型の時間データに注意<BR>Oracleの日付型(DATE)には時間のデータが含まれるため,(1)日付型カラムに対して日付だけの検索条件を指定しても検索できない。日付を検索条件にしたい場合,日付型に時間データが含まれることを意識し,「(2)範囲指定する」,「(3)時間を切り捨てる」,「(4)日付を取り出す」などの方法を採る必要がある 今回取り上げる日付型,集約関数,GROUP BY句,HAVING句は,便利なのでよく使われる。しかしこれらを使い始めのころに一度はやってしまう失敗例がある。一度経験すると大丈夫なのだが,分からないうちは戸惑うことになる。Oracleの日付型には時間データが含まれる
Index列を加工すると、加工した結果を得るための全件検索を行ってしまいIndexが利用されない。 次のような場合、Indexが利用されるように条件式を変更することでパフォーマンスが向上する。 ・Index列が関数の引数として使用されていてIndexが使用されていない場合 ・Index列を含む計算式が使われていてIndexが使用されていない場合 ・暗黙の型変換が行われたためにIndexが使用されていない場合 例)下記のような場合はorder_noにインデックスが張ってあっても使用されない。 WHERE TO_NUMBER (SUBSTR(a.order_no, INSTR(b.order_no, '.') - 1)) = TO_NUMBER (SUBSTR(a.order_no, INSTR(b.order_no, '.') - 1))
本連載では、Oracleデータベースのパフォーマンス・チューニングの中から、特にSQLのチューニングに注目して、実践レベルの手法を解説する。読者はOracleデータベースのアーキテクチャを理解し、運用管理の実務経験を積んでいることが望ましい。対象とするバージョンは現状で広く使われているOracle9iの機能を基本とするが、Oracle 10gで有効な情報も随時紹介していく。(編集局) 連載目次 前回「チューニングが必要なSQLを洗い出す」では、動的パフォーマンスビューを使用してチューニング対象となり得るSQLを洗い出す方法を説明しましたが、チューニングを行うためには、SQLの実行計画など、より詳細な情報が必要となります。今回は、これらの情報を取得する方法、また収集した情報の分析方法について説明していきます。 SQL詳細情報の取得 SQLチューニングを行う際に重要となる情報としては、SQLの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く