- ベストアンサー
MySQLのviewはデータをコピーするのですか?それともエイリアスのようなものですか?
Webページのアクセスの度に、毎回大きいテーブル同士をJOINするのは効率が悪いと思います。 そのような場合、大きいテーブル同士をJOINしたVIEWを作成しておけば、データはコピーされて速度が増すのでしょうか? それとも、データはコピーされずに、結局、SELECTされる毎に内部的に毎回JOINされているのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- chukenkenkou
- ベストアンサー率43% (833/1926)
- chukenkenkou
- ベストアンサー率43% (833/1926)
関連するQ&A
- ビューテーブル
初心者的な質問です。 オラクルデータベースで、検索速度向上の為に ビューテーブルを作る事になりました。 ちょっといまいちわからないのですが、検索条件を 項目として作れば良いのでしょうか?? また、ビューテーブルを作って場合に、そのテーブルに データが入るタイミングとかってどうなっているのでしょうか?? ビューを使わないとしたら 7つのテーブルを参照して、検索をしなければなりません。 環境は、Webです。 ASPからUNIXのオラクル8にアクセスしています。 補足する必要があれば言って下さい。 可能な限り書きます。
- ベストアンサー
- その他(データベース)
- ビューで引数を使いたい
4つのテーブルのいずれかをアクセスしますが、 select文はひとつでwhereでテーブルを指定したいので、 例:select * from ビュー where table_no=1 とかで、table_noの値でアクセスするビューは 作れますか? ※この例の場合、select * from table1が実行したい。 4つのテーブルは全て同じ構造で、 データが違うのみです。
- ベストアンサー
- SQL Server
- viewでfrom句にサブクエリが書けない
こんにちは。MYSQLのVIEWの代替についてお教え下さい。 下記でinner joinについて教えて頂きました。 http://okwave.jp/qa/q7296711.html 環境はWin 7 MYQL5です。 t1テーブルのデータ ID,在庫 001,22 t2テーブルのデータ ID,出庫 001,17 001,3 SELECT A.z AS `在庫`,B.* FROM (SELECT SUM(stock) AS z FROM t1 WHERE id='001' GROUP BY id) A INNER JOIN t2 B ON A.id=B.id というコードで、それぞれのテーブルをグループ化してグループ化したもの同士をJOINしました。 このコードを元にVIEWを作り、そのVIEWを対象にクエリを作ろうと考えていました。 しかしながら、MYSQLのVIEWではFROM句でサブクエリは使えませんでした。 http://www.klab.jp/media/mysql/index4.html 上記のコードを書きなおして、なんとしてもVIEWで利用したいのですが、FROM句でサブクエリを使わずにVIEWを作成する方法がわかりません。 どのようにリライトすればよいか、ご助言お願い致します。
- ベストアンサー
- MySQL
- データシートビューからフォームビューへ切り替えられない。
こんにちは。 以前、DexMachina様にご教授頂いたのですが 違うフォームを作っていたら データシートビューからフォームビューへ切り替えられないので教えてくださいませ。(アクセス2003) 前回質問:http://okwave.jp/qa4982081.html フォーム上(デザインビュー)にテーブルをドラッグしました。 (サブフォームのデフォルトのビューは、データシートビューになっていますが単票ビューに切り替えました。) 一度保存し、再度フォームを開くと、単票ビューで表示されるので その状態で、 Sub test() Forms("フォーム1").SetFocus Select Case Forms("フォーム1").Form.CurrentView Case 1 'フォームビューの場合 → データシートビューに切替 DoCmd.RunCommand acCmdSubformDatasheetView ' Forms("フォーム1").DefaultView = 2 Case 2 'データシートビューの場合 → ピボットテーブルに切替 DoCmd.RunCommand acCmdSubformPivotTableView End Select End Sub を実行すると、ちゃんとデータシートビューに切り替わります。 そしてデータシートビューからフォームビューへ切り替えようと思い 再度上記のコードを実行しても何も起こりません。 (エラーにもなりません) なぜでしょうか? ちなみに規定のビューをデータシートビューにして上記マクロを実行しても同様何も起こりません。データシートビューのままです。 MsgBox Forms("フォーム1").DefaultView で値を取得してみたら データシートビューでもフォームビューでも0が返って来ます。 何か原因がわかる方いらっしゃいましたら ご教授よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Viewを作ると遅くなる?
Viewを作成してそのViewに対してWhere句で条件を付けて検索する場合と、 Viewを作成せずに直接Where句で条件を付けて検索する場合と、どちらが パフォーマンスがよいでしょうか? (1)Viewを使わない例 SELECT 伝票番号,伝票日付,金額 FROM 伝票 WHERE 伝票番号=1 (2)Viewを使う例 あらかじめViewを作成しておく CREATE VIEW TEST_VIEW AS SELECT 伝票番号,伝票日付,金額 FROM 伝票 以下のSQL文を発行する SELECT * FROM TEST_VIEW WHERE 伝票番号=1 このような質問をした訳は、元となるテーブルの全件を対象とした Viewを作った場合、毎回テーブルフルスキャンを行ってViewを作成 したあとにWHERE句の絞り込みを行うのかどうかが気になったから です。
- 締切済み
- SQL Server
- Accessでテーブルをデータシートビューで開けない
ここ数日、AccessでAテーブルをデータシートビューで開こうとすると、ODBC すべてのレコードをロックできません、というメッセージが出てしまいます。デザインビューで開くことはできるのですが、このAテーブル(リンクテーブル)を使って新規クエリを作ることもできなくなってしまいました。 前に作ったクエリは普通に開くことができます。 Aテーブルを使わずにクエリを作成すると、問題なくできます。 設定を変えた記憶はないのですが、どうしたら元通りになるのでしょうか。 よろしくお願いします。
- ベストアンサー
- その他(データベース)
- MySQLのCREATE VIEWがうまく動作しません。
SQL初心者です。今回仕事で使う事になり、Win98に MySQL Ver3.23.51をインストールしたのですが、 CREATE VIEW文がうまく動作しません。 例えば MAIN と言うテーブルが存在する時に MySQLプロンプト上で SELECT * FROM MAIN; とやるとちゃんと動作して表示してくれるのですが、 これをTEMPと言うビューを作成したい場合に CREATE VIEW TEMP AS SELECT * FROM MAIN; とやると ERROR 1064: You have an error in your SQL syntax near \'VIEW TEMP AS SELECT * FROM MAIN\' at line 1 と出て来てしまいます。文法的には間違ってないはずなのですが、何がいけないのでしょうか?MySQLはCREATE VIEW文をサポートしていないのでしょうか? 周りに詳しい人間がいないので、原因がわからなくて つまづいています。どうかよろしくお願いします.
- ベストアンサー
- その他(データベース)
- VIEWに対してWHERE句をつける
SQLでVIEWを作成し、そのVIEWに対してSELECT文を書くときに、そのVIEWに対してWHERE句をつけるのは、パフォーマンスを必ず下げることになるのでしょうか?勝手な認識ですが、VIEWにWHERE句をつけると遅くなる場合があると聞きました。VIEWの組み方にももちろんよると思いますが、VIEWは消極的に使い、出来る限りJOINなどして結合したSQLを書くほうが無難なのでしょうか?よろしくお願いいたします。
- 締切済み
- MySQL
- デザインビューで、連結式 を表示できません について
毎度お世話になっております。 XP、ACCESS2003を使用しております。 クエリにSQL文を記入し実行後、 データシートビューでは結果が表示されるのですが、 デザインビューにすると デザインビューで、連結式 t1.CODE = t2.CODE を表示できません。 とメッセージがでます。 SQL文は以下の通りです。 SELECT t1.CODE FROM テーブル1 as t1 LEFT JOIN (SELECT テーブル2.CODE from テーブル2 ) as t2 ON t1.CODE = t2.CODE また、実行後にSQL文を編集しようとすると、 文字が途中で切れるような感じになります。 (fromのmを消すとoの半分も消えてしまいます。) このような状態は初めてです。 検索してもよくわかりませんでした。 よろしくお願いします。
- 締切済み
- その他(データベース)
- ビューについて、教えてください
いつもお世話になっております。 ビューについて、教えて下さい。 以下のビュー「ABVW」を作成しましたが、TBLAやTBLBの内容が変更された場合、 ビュー上のデータは自動で置き換わるのでしょうか? CREATE VIEW ABVW SELECT * FROM TBLA UNION ALL SELECT * FROM TBLB 以上、よろしくお願いします。 ※いろいろなサイトではマテビューはリフレッシュ機能のようなものがあると書かれており、 マテビューを作成しようとしたのですが、TBLA/TBLBは”キーなし”が原因なのかは わからないのですが、うまく作成できず、普通のビューで行うことにしました。
- ベストアンサー
- Oracle
- パソコン上での設定では両面印刷オフにしているのに、EPカラリオプリンターで印刷すると自動的に両面印刷されてしまう問題が発生しています。
- EPカラリオプリンターの印刷設定が正しく反映されず、パソコン上での設定と異なる動作をしています。
- EPカラリオプリンターの両面印刷の設定が解除できないため、印刷時に都度設定を変更する必要があります。
お礼
ありがとうございました。 上記のご回答、完璧には理解していませんが、なんとなく(75%ほど)は理解しました。 > 絞り込んだ結果を実体のある表に格納しておけば・・・ それは、同じデータを別々のテーブルに重複して登録するということでしょうか? もしそうであれば、いわゆる正規化というのは、実際の業務では理想にすぎないということでしょうか? 実務経験に乏しくて、他の方がどのようにしてるのか、想像がつきません・・・。 ともかく、ご回答ありがとうございました。 VIEWはテーブルのコピーではないということは分かりました。ありがとうございます。