ゲームのプレーヤーのインベントリにアイテムを配置するためのシステムを作成していますが、個別のクエリがSQLServerでのトランザクションの実行にどのように影響するのか疑問に思っています。例えば:
- トランザクションを開始します
- ユーザーからのお金とゲーム内のステータスを照会します(オフラインである必要があります)
- インベントリにいくつかのアイテムを追加します。
- そのお金を減らす
- コミット
しかし、ゲームサーバー全体には、在庫、お金、プレーヤーのステータスの更新など、トランザクションなしで実行される多数の個別のクエリとサブシステムがあります。
トランザクションはどの程度正確に機能しますか?つまり、C ++のクリティカルセクションと同じように、ロックするオブジェクト(この場合は私のプロシージャ)が必要ですか、それとも個別のクエリに対してもロックしますか?更新時にすべてをトランザクション内に配置する必要がありますか?
私はプログラミングに関連するすべてのことを独学で学んでいるので、何かが見落とされます。ごめん。
ありがとうございました。