問題タブ [transactions]

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 に答える
283 参照

python - Redland の Python バインディングでのストレージ トランザクション?

私は現在、Redland の Python バインディングをざっと調べましたが、それを介してストレージ エンジンでトランザクションを実行するクリーンな方法を見つけていません。低レベルの Redland モジュール内にいくつかのモデル トランザクションが見つかりました。

これらもストレージ層に変換されますか?

ありがとう :-)

0 投票する
5 に答える
2151 参照

performance - Oracleでトランザクションのオーバーヘッドを最小限に抑える方法は?

データをテーブルにロードし、同時にクエリを実行する必要があります。データの性質上、整合性とパフォーマンスを犠牲にすることができます。トランザクションのオーバーヘッドを最小限に抑えるにはどうすればよいですか?

残念ながら、MySQL などの代替手段は使用できません (非技術的な理由により)。

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

sql-server - SQL ServerでREAD COMMITTED SNAPSHOTをプログラムで有効にする方法は?

SQL Server で READ COMMITTED SNAPSHOT をプログラムで有効にする必要があります。どうやってやるの?

0 投票する
8 に答える
14066 参照

mysql - mysql挿入競合状態

MySQL で競合状態を停止するにはどうすればよいですか? 当面の問題は、単純なアルゴリズムによって引き起こされます。

  1. テーブルから行を選択する
  2. 存在しない場合は、挿入します

次に、重複する行を取得するか、一意/主キーを介してそれを防止すると、エラーが発生します。

通常、ここではトランザクションが役立つと思いますが、行が存在しないため、トランザクションは実際には役に立ちません (または、何か不足していますか?)。

特にテーブルが 1 秒間に複数回更新される場合、LOCK TABLE はやり過ぎのように聞こえます。

私が考えることができる唯一の他の解決策は、すべての異なる ID に対して GET_LOCK() ですが、より良い方法はありませんか? ここでもスケーラビリティの問題はありませんか? また、すべてのテーブルに対してこれを行うのは少し不自然に聞こえます。これは、同時実行性の高いデータベースでは非常に一般的な問題のように思えます。

0 投票する
4 に答える
308 参照

search - オブジェクト トランザクションを格納および検索する最良の方法は何ですか?

まともなサイズのオブジェクト指向アプリケーションがあります。アプリ内のオブジェクトが変更されるたびに、オブジェクトの変更が DB に保存されます。しかし、これは理想的とは言えません。

現在、トランザクションはトランザクションと一連の transactionLI として保存されます。

transaction テーブルには、who、what、when、why、foreignKey、foreignTable のフィールドがあります。最初の 4 つは自明です。ForeignKey とforeignTable は、変更されたオブジェクトを特定するために使用されます。

TransactionLI には、timestamp、key、val、oldVal、および transactionID があります。これは基本的にキー/値/oldValue ストレージ システムです。

問題は、これら 2 つのテーブルがアプリケーション内のすべてのオブジェクトに使用されるため、かなり大きなテーブルになっていることです。それらを何かに使用するのは遅いです。インデックスは非常に役立ちます。

そのため、このようなことを行う別の方法を考えています。これまでに検討したこと: - これらのテーブルをタイムスタンプのようなものでシャーディングします。- 2 つのテーブルを非正規化して 1 つにマージします。- 上記の 2 つの組み合わせ。- 変更後に各オブジェクトをシリアル化し、subversion に格納するという行に沿って何かを行う。- おそらく他の何かですが、今は思いつきません。

全体的な問題は、トランザクション データを適切に格納および検索するための何らかのメカニズムが必要なことです。ええ、それをリレーショナル データベースに強制的にフィードすることはできますが、実際には、これはトランザクション データであり、それに応じて保存する必要があります。

他のみんなは何をしているの?

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

oracle - ADO.NET から使用され、トリガーを伴う場合の Oracle トランザクションの範囲は?

ADO.net から Oracle を呼び出す場合、ループ内で複数の挿入を呼び出す場合、各挿入により、その PL-Sql 内に Commit ステートメントを含むトリガーが起動されるため、そのコミットを停止することは不可能であると誰かから言われました。実際にトランザクションをコミットします。

つまり、ループの開始前に ADO.Net コードでトランザクションを開始し、ループの終了時に、ループ内のすべての挿入が成功した場合にのみ、すべての挿入をコミットするようにします。私の情報筋によると、オラクルの仕組みでは、これらのトリガーに COMmit ステートメントが含まれている場合、これは不可能です..

これは非常に一般的な要件のようであり、SQL Server で可能であることはわかっているため、私には適切ではないように思えます。

これは正しいです?

0 投票する
7 に答える
22565 参照

.net - WCF サービス内で偽装すると、LINQ to SQL クエリを実行しようとすると、サービスが System.Transactions を読み込めないのはなぜですか?

データベース クエリを実行する必要がある IIS 7.0 でホストされている WCF サービスがあります。これを行うための適切な権限を取得するために、次のようにサービス内で偽装しています。

コード

構成

接続してクエリを実行しようとすると、次のようになります。

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

.net - RIA サーバー アーキテクチャ .NET

Flexプロジェクトのリモート ゲートウェイとして WebORB を使用しています。Server .NET 側で使用するのに最適なアーキテクチャは何かと考えていました。現時点では、SubSonicを使用してデータ アクセス レイヤーを生成しています。それに加えて、サーバー側は実際にはSQL Server 2005データベースから Flex へ、および Flex から SQL Server 2005 へデータを取得する方法としてのみ機能するため、Flex からの各呼び出しは少しトランザクション スクリプト パターンを使用します。

サーバー側でRIAを処理する方法に関するベスト プラクティスはありますか? 私はLINQで遊んでいます (ただし、複数の結果セットを持つストアド プロシージャは頭痛の種でした)、 ADO.NET Entity Frameworkについて疑問に思っています ...

並行性も大きな問題です。これらはデータセットによって処理され、LINQ もこれをサポートしていることはわかっていますが、データが Flex に送信されると、元のデータセットとの接続は実際にはなくなります。

大規模な RIA の経験がある人は他にいますか?

0 投票する
8 に答える
34498 参照

.net - トランザクション ロールバックを使用しても SQL ID (自動番号) がインクリメントされる

SQL Server 2005 データベースへの SQL 挿入を伴う .net トランザクションがあります。テーブルには ID 主キーがあります。

トランザクション内でエラーが発生すると、Rollback()が呼び出されます。行の挿入は正しくロールバックされますが、次にテーブルにデータを挿入すると、ロールバックが発生しなかったかのように ID がインクリメントされます。したがって、本質的に同一性配列にギャップがあります。Rollback()メソッドに不足している ID を再利用させる方法はありますか?

私はこれに正しい方法でアプローチしていませんか?

0 投票する
3 に答える
1880 参照

sql-server - トランザクションレベル、nolock/readpastおよび同時実行性

複数のステーションから大量のデータを同時に挿入すると同時に、データクエリインターフェイスを公開するシステムがあります。スキーマは次のようになります(フォーマットが不適切なため申し訳ありません)。

データの挿入は「同期」で行われ、次のようになります(システムにデータを挿入するだけで、更新することはありません)

そして、クエリは次のようになります(特定のステーション、測定時間、およびデータ型に対して)

私の質問は、挿入のトランザクションレベルとクエリのNOLOCK/READPASTヒントをどのように組み合わせて次のようにすることができるかです。

  1. 挿入を優先しながら、システムの同時実行性を最大化します(大量のデータを保存する必要があり、1秒あたり2000以上のレコードが必要です)
  2. クエリは、「コミットされた」同期からのデータのみを返します(半分挿入された同期、またはロックスキップのためにスキップされたエントリとの同期を含む結果セットは必要ありません)
  3. 「最新の」データがクエリに含まれているかどうかは関係ありません。「ライブ」で最新のデータよりも一貫性と応答性を重視します。

これは非常に相反する目標であり、高いトランザクション分離レベルが必要になる場合がありますが、挿入と選択の両方で高い応答性を実現するためのすべてのトリックと最適化に関心があります。より多くの微調整やトリックを洗い流すためにさらに詳細が必要な場合は、喜んで詳しく説明します。

更新:将来の返信のためにもう少し情報を追加するだけです。最初は5TB以上のストレージを備えたSANネットワークでSQLServer2005(おそらく6か月以内に2008年)を実行しています。SAnが設定されているRAIDの種類と、使用可能なディスクの正確な数がわかりません。