問題タブ [in-memory-oltp]

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.

0 投票する
1 に答える
465 参照

sql-server-2014 - 一時テーブルの代わりにインメモリ OLTP テーブルを使用する

SQL Server 2014インメモリ OLTP (インメモリ最適化)という優れた機能と思われる機能を紹介しました。数年前に試して、より優れたパフォーマンスを得たMySQL's MEMORY Storage Engineを思い出します。

すでに質問されていることは知っていますが、より的を絞ったシナリオに興味があります。

いくつかのSSRSレポートでは、パフォーマンス上の理由 (多くの結合、グループ化などを含むクエリの非常に見苦しく遅い実行プラン) のために、一時テーブルを使用して部分的な結果を保持することでロジックを分割する大規模なストアド プロシージャを使用しています。

一時テーブルはディスクに書き込まれるため、大量のデータ (数万行または数十万行) を処理する場合にパフォーマンスに影響を与えることが予想されます。

このシナリオで使用In-Memory OLTP tablesする意味はありますか? 以下のメリット・デメリットを考えています。

長所:

  • すべてのデータがメモリに保存されるため、大幅に高速になるはずです

短所:

  • 明示的なセッションの分離が必要です (テーブルには、さまざまな からのデータが混在しないように、ある種のセッション識別子を含める必要がありますSPID)
  • メモリ不足を回避するために明示的なデータのクリーンアップが必要です (宣言スコープを終了した後に一時テーブルが自動的に削除されるのとは対照的に)
  • テーブルに格納されるデータ量に注意する必要があります
0 投票する
0 に答える
141 参照

sql-server - SQL Server 2014 のインメモリ oltp でメモリが不足する

SQL Server Parallel DW APS からインメモリ OLTP SQL Server 2014 Enterprise エディションにテーブルを読み込もうとしています。256 GB のメモリ サイズの制約があり、宛先サーバーの合計メモリは 500 GB であることがわかっているためです。DBA はメモリの 90% を操作に割り当てており、そのうち 256Gb しか使用できません。ソース テーブルのサイズは 30 GB (1 億 9,200 万レコード、320 列) です。宛先のメモリを増やそうとするたびに、エラーが発生し続けます。

このクエリを実行するには、リソース プール "デフォルト" にシステム メモリが不足しています

インメモリDBのディスク容量は1TBです。10Gb が収まる他のテーブルがありました。テーブルは、SSIS Visual Studio 2013 を使用してメモリに読み込まれています。Oledb ソース、Oledb 宛先 (チェックボックスなし、バッチあたりの行数 5000、最大コミット サイズ 214748)、ネットワーク パケット サイズ接続マネージャーで 2000。インメモリ oltp テーブルのすべてではないため、テーブル ロックをチェックできません。

宛先テーブルには持続性 SCHEMA_AND_DATA があります。上記のエラーが発生するたびに。宛先をメモリ テーブルにドロップして再作成し、ロードする前に行数が 0 であることを確認します。2014 年にこのエラーをどのように克服できますか? SQL Server 2016 でもこれを行うことができますか? インメモリ操作には、ソース テーブルの 2 倍のサイズを割り当てる必要があります。

0 投票する
2 に答える
262 参照

c# - インメモリ OLTP テーブルが SQL Server 2016 Management Studio オブジェクト エクスプローラーに表示されない

インメモリ OLTP テーブルについて学習するために SQL Server 2016 を使用しています。

データベースをmydatabase作成し、これに対して変更コマンドを実行して、ファイル グループを作成します。

このグループにコンテナを作成するには:-

これらのコマンドが正常に実行された後、このデータベースにメモリ最適化された永続テーブルと非永続テーブルを作成しました。mytable_durable正常にmytable_non_durable作成されます。

SQL Server 2016 のオブジェクト エクスプローラーでこれら 2 つのテーブルを表示したいと思いますmydatabase > Tables。ノードの下のデータベースには表示されません。どうすればそれらを見ることができますか? 添付のスクリーンショットをご覧ください。

ここに画像の説明を入力

しかし、これを実行すると

両方のテーブルが見えます。次のスクリーンショットをご覧ください。

ここに画像の説明を入力

オブジェクト エクスプローラーでそれらを表示する方法はありますか? または、これはデフォルトの動作ですか?

0 投票する
1 に答える
230 参照

azure-sql-database - インメモリ oltp プロシージャのテーブル変数

メモリ最適化プロシージャでテーブル変数を使用できますか?

ここでは、いいえと言います。 https://docs.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/transact-sql-constructs-not-supported-by-in-memory-oltp?view=sql-server- 2017#natively-compiled-stored-procedures-and-user-defined-functions

誰かが同じことを確認できますか?

0 投票する
1 に答える
64 参照

sql-server - SQL Server インメモリ OLTP (Hekaton) での動的更新または同等のスクリプト

ネイティブ コンパイル ストアド プロシージャで同等のストアド プロシージャ (実行文字列を含む) を記述したいのですが、それを実装する方法が見つかりません。

誰にもアイデアはありますか?