![Amazon.co.jp: 達人に学ぶSQL徹底指南書: 初級者で終わりたくないあなたへ: ミック: 本](https://cdn-ak-scissors.b.st-hatena.com/image/square/b4cedadc31aa165994cf6cff9d02e14f05804c37/height=288;version=1;width=512/https%3A%2F%2Fm.media-amazon.com%2Fimages%2FI%2F51CGypjLrvL._SL500_.jpg)
UPDATE文にエイリアスをつけてサブクエリでいろいろとしている場合、 (たとえば UPDATE HOGE_TABLE AS H SET HOGE_COLUMN=1 WHERE (・・・)のようなSQL文) PostgreSQL8.3.xでは問題なく実行できるが、PostgreSQL8.1.xでは実行できない。 ERROR: syntax error at or near "as" となる。 もうバージョンが古いのでバージョンアップすればよいのだが、どうしてもSQL文で何とかしなければならない場合がある。というかあった。 UPDATE文にもFROM句があるとのことで、下記のように修正したところ、問題なく動きました。 UPDATE HOGE_TABLE SET HOGE_COLUMN=1 FROM HOGE_TABLE H WHERE (・・・)
学校でSQLを使って、データベースを作るという期末課題がでました。 当方バイクの知識が少々あるため、バイクとバイク販売店というデータベースを作ってみることにしました。 バイクのデータ100個分とお店のデータは10個ほどなのですが、課題の条件の中にVIEWを作成すること、とあるのですが、VIEWとは何者なのでしょうか? 授業のページを見ても、難しい事しか載っていなくて困っています。 またテーブルの入力と、データの入力はなんとか覚えたのですが、VIEWの作り方は全く意味がわかりません。なので・・・ VIEWの意味と役割を教えてください。 初心者なので出来るだけわかりやすく教えていただけたら幸いです。 またVIEWの作成方法(create viewだとかなんとか・・・)を教えてください。 ちなみにテーブルデータとかはこんな感じに作っております。なのでこんな感じでVIEWの作成方法をご教授いただけ
SAVEPOINT、ROLLBACK TO SAVEPOINT および RELEASE SAVEPOINT ステートメント
postgresql.confの設定を書き換えたので再起動しようと思ったらなぜか出来なかった。いろいろ調べてみたが、意外と手こずってしまい苦労した。症状としては # pg_ctl restart postmaster successfully started upとは表示されるものの、実際はps aux | grep postmasterしてみてもそのようなプロセスは走っておらず、psqlしてみても蹴られてしまう。で、いろいろ見てみるとどうやら /tmp/.s.PGSQL.5432.lock /tmp/.s.PGSQL.5432 というファイルが邪魔らしい。消してから再びpg_ctlしてみたら直った。焦ったー。 原因として、他にはshared_bufferの値を上げすぎると起動出来なくなるらしい。これも注意。shmmaxとの兼ね合いを考えないと。
皆さんも日々SQLを組んでいれば、遅いSQLに何度となく遭遇し、ストレスを強いられてきた経験をお持ちのはずです。投げたら最後、1日たっても結果が返ってこないうえに帰ってきたと思えばエラーだった、なんてね。 このページでは、SQLの実行速度を速くし、少ないメモリで実行するためのテクニックを紹介いたします。と言っても、実は『プログラマのためのSQL 第2版』の受け売りがほとんどでして、この本を読んでいただければ、ここを読む必要はありません。 また、SQLの最適化の実行前と実行後で、SQL文の解析結果を比較することが重要です。適当にSQLをいじって速くなったからそれでよし、という非科学的な態度じゃダメですよ。SQLの解析方法については、別の文章で説明します(ただしオラクルのみ。僕がオラクルしか使ったことがないので)。 なお、SQLの応答速度が遅い場合、その原因はSQL単体にあるとは限りませ
DBアプリケーションを作成する際、デッドロックを回避するために考慮すべき点のまとめ。 ここに書くことは、今までの経験 (Oracle) を思い出し、「こうすればコーディング時点でデッドロックを回避出来るんじゃないか」と、捻り出したので、多少間違いがあるかもしれません。 後日、PostgreSQLにて検証してみようと思います。 1. 同一トランザクション内の複数テーブルアクセス デッドロックの説明でもっともわかりやすい基本的な例として引用されるパターン。 例えばA, Bというテーブルがあるとき、二つのトランザクションで トランザクション1 : A -> B トランザクション2 : B -> A の順にテーブルの更新アクセスをしていると、同時にアクセスされた時にデッドロックとなる。 (実際は同一レコードに対してアクセスした場合) 対策: ・ コーディング規約として、同一トランザクション内のテー
ロックの仕組み(その2)-オブジェクトのロックタイプ 前回「第27回 トランザクションの一貫性を保証するロック」は、トランザクションの4つの分離レベルの説明をしました。今回は、この分離レベルを実現するデータベースサーバのロック機構に触れてみましょう。実際にどのような仕組みでデータベースサーバがロック制御を行っているかを理解することで、トランザクション機能を利用した際に起こりやすい問題点を、あらかじめ予測できるようになると思います。 今回は、初めに、ロックの状態を取得するシステムストアドプロシージャ「sp_lock」の定義を若干拡張した「sp_lock_detail」ストアドプロシージャを作成しましょう。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く