問題タブ [materialized-views]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - Hibernate とインデックス付きビュー (マテリアライズド ビュー)
最近、私は NHibernate でページング機能を実装するのに忙しく、単純なエンティティでは問題なく動作しましたが、要求されたページを取得するために複数の結合が必要なエンティティではパフォーマンスの問題に遭遇しました。それに加えて、すべてのねじれたエイリアスと結合を使用せずにクエリを慣例に従って実行できれば、実装ははるかに簡単になります。
そこで、両方の問題 (または少なくともパフォーマンスの問題) を解決できる、いわゆるインデックス付きビューまたはマテリアライズド ビューを考えましたが、NHibernate でそれを行う方法に関するガイドや情報は見つかりませんでしたか? 一部のエンティティではデータが頻繁に更新/挿入されるため、問題はより複雑です。したがって、パフォーマンスの問題になる可能性のある積極的な更新が必要になる可能性があります。
何かアドバイス?
ありがとう
oracle - 最上位のテーブルが変更されたときにマテリアライズド ビューを更新する
私はこのように定義された具体化されたビューを持っています:
一種のキャッシュとして書きました。ソース テーブルは巨大ですが、異なるペアの数はかなり少ないです。他のテーブルと結合するには、これらのペアが必要です。これまでのところ非常に優れています。クエリが完全に高速化されています。
しかし、ビューに古いデータが含まれていないことを確認したいと考えています。基になるテーブルは月に 4 ~ 5 回変更されますが、いつ変更されるかは必ずしもわかりません。ソーステーブルが変更されたときにマテリアライズドビューが更新されるように、マテリアライズドビューを定義できることを理解しています。ただし、ドキュメントはかなり複雑になります。
使用する必要がある正確な構文は何ですか?
マテリアライズド ビュー ログを作成する必要はありますか?
高速リフレッシュと完全リフレッシュの違いは何ですか?
oracle - Oracle マテリアライズド ビューの更新 - コンパイル エラー
マテリアライズド ビューで更新を実行しようとしていますが、スクリプトをコンパイルできません。
メッセージが表示されます:
ORA-06550: 行 3、列 9: PLS-00103: 次のいずれかを期待しているときに、シンボル "DBMS_MVIEW" が検出されました:
:= . ( @ % ; 即時 続行するには、「DBMS_MVIEW」の代わりに記号「:=」が使用されました。
私は何か間違っていますか?何かをインポートする必要がありますか?
アップデート
(S1917) 期待: ( ; @
IMMEDIATE
これは Oracle 10g XE です。問題ないことを願っています。
前もって感謝します !
sql - マテリアライズド ビューまたは CDC?
何百万ものレコードを含む 2 つのテーブル (SQL 2008 を使用して保存) のビューがあります。
今、物理テーブルを使用してこの情報を保存し、次のようなさらに小さなクエリで大きなテーブルをスキャンしないようにします
したがって、パフォーマンスの点でどちらが最良のアプローチですか。
- 両方のテーブルで変更データ キャプチャを使用し、変更を特定して新しいテーブル 'TbSalesAge' に適用します。
- 物理テーブルの代わりにマテリアライズド ビューを使用する
- 他の方法(説明してください...)
PS: リアルタイム レプリカは必要ありません
oracle10g - 文字列集計を使用すると、マテリアライズド ビューの作成が非常に遅くなります。パフォーマンスに関する提案はありますか?
マテリアライズド ビューがたくさんあります。作成と更新に数秒しかかからないものもあれば、SQLDeveloper がそれまでにクラッシュしなければ、コンパイルに最大 40 分かかるものもあります。
クエリでいくつかの文字列を集約する必要があり、次の関数があります
次に、MV で次のような select ステートメントを使用します。
それは私に次のことを与えるので、これは素晴らしいです:
それ以外の :
このSTRAGG
機能を使用すると、MV の作成/更新にかかる時間が劇的に増加するようです。コンマ区切りの値のリストを作成する別の方法はありますか? 私はMV全体でこれを使用しているので、私にとって非常に必要な機能です.
ありがとう
sql - MySQL には SQL Server の「インデックス付きビュー」に相当するものがありますか?
MySQL には、SQL Server の「インデックス付きビュー」機能と同等のものがありますか?
私が特に探しているのは、下線付きのビューのクエリ/SQL を単に実行するよりも速く結果を返す「ビュー」を MySQL が作成する方法です。
mysql - マテリアライズド ビューを MySQL で実装するには?
マテリアライズド ビューを実装する方法は?
そうでない場合、マテリアライズド ビューを MySQL で実装するにはどうすればよいですか?
アップデート:
以下は機能しますか?これはトランザクションでは発生しませんが、それは問題ですか?
database - マテリアライズド ビューではなく NoSQL を使用する理由
最近、NoSQL について多くの話題がありました。
人々が NoSQL を使用する一番の理由は、パフォーマンスを向上させるために DBMS データを非常に非正規化し始め、最終的に 1 つのテーブル内にすべてのデータが含まれる 1 つのテーブルになってしまうためです。
ただし、マテリアライズド ビューを使用すると、NoSQL を使用するのと同じ理由で、データを正規化したまま、単一のテーブル ビューとして格納できます。
では、マテリアライズド ビューではなく NoSQL を使用するのはなぜでしょうか。
oracle - 個別の...内部結合を選択するvs.選択する...ここでidin(...)
別のマテリアライズド・ビューに一致するレコードがあるレコードとして定義された、テーブルのサブセット(マテリアライズド・ビューとして)を作成しようとしています。
たとえば、user_id列とname列を持つUsersテーブルと、entry_id、user_id、activity、timestamp列を持つLogテーブルがあるとします。
まず、ログテーブルのマテリアライズドビューを作成し、タイムスタンプ>some_dateの行のみを選択します。ここで、ログテーブルのスナップショットで参照されているユーザーのマテリアルビューが必要です。私はそれを次のように作成することができます
または私はすることができます
(複数のログエントリを持つユーザーからの複数のヒットを回避するために、明確にする必要があります)。
前者はよりクリーンでエレガントに見えますが、はるかに時間がかかります。私は何かが足りないのですか?これを行うためのより良い方法はありますか?
編集:where exists
条件が。を使用する場合を除いて、句は大いに役立ちましたOR
。たとえば、上記のログテーブルにもuser_name列があり、ログエントリをUsersレコードに一致させる正しい方法は、列(ユーザーIDまたはユーザー名)のいずれかが一致する場合です。私はそれを見つけています
よりもはるかに高速です
何か助けはありますか?
(説明計画に関しては...レムはそれを消毒することに取り組んでいます、あるいはそれらはむしろ...私はそれらをしばらく投稿します。)
編集:計画の説明:内部結合を使用したクエリの場合:
使用しているものの場合where exists
:
無実を保護するためにDBオブジェクト名が変更されました。:p
sql-server - SQL Server 2005 のマテリアライズド クエリ テーブル
DB2 では、Materialized Query Table (MQT) がサポートされています。基本的に、クエリを記述して MQT を作成します。ただし、ビューとの違いは、クエリが事前に実行され、結果のデータが MQT に格納され、MQT をベース テーブルと更新/同期するときにいくつかのオプションがあることです。
SQL Server でも同じ機能が必要です。同じ結果を達成する方法はありますか?
数百万行のテーブルがあり、ダッシュボードに概要 (メンバーの総数、総費用など) を表示したいと考えています。そのため、ユーザーがダッシュボードにアクセスするたびにカウントするのではなく、それらをテーブルに保存し、そのテーブルを毎晩更新したいと考えています。
あらゆる種類のヒント、回答、提案、アイデアを歓迎します。ありがとう。