私はある時点でテーブルのスナップショットを撮り、スナップショットと現在のデータの違いを判断する必要があります。それを行う最も効果的な方法は何ですか?純粋なSQL(MS SQL)で行うことができますか、または私のアプリケーションサーバーはDelphiコードでそれを行いますか?SQLまたはコード:テーブルスナップショットと現在のテーブルの違い。それはより効率的ですか?
私はこれらの変更を追跡し、Telnetプロトコルを介して同じマシン上の/任意の数のクライアントにそれらを送信するアプリケーションサーバーを使用しています。
txtプロトコルのため、何か変更があるたびにすべてのデータ(〜10kレコード)を送信することは実用的ではないため、テーブルの違いを使用する必要があります。
関連するアプリはSwordfish(自動取引システム/ ATS)ですが、私によって書かれたものではありません。アプリケーションサーバー(シェフ)とクライアント(ダイナー)、どちらも私によって書かれています。 ATSはMS SQLをAPIのレイヤーとして使用するため、ChefはMS SQLサーバーにデータを送受信し、本質的にATSを制御します。クライアントはシェフに何をしたいかを伝え、その後シェフはTelnetを介してDBMSと他のダイナーズを通じてSwordfishと話します。
現時点では、サービスブローカーイベント – chillum
を使用してSQLクエリの変更について通知を受けていますか?どのデータベースを使用していますか? 「何か変わるたびに〜10kレコードを送信する」とはどういう意味ですか?あなたのアプリは10,000レコードをメモリに保存していますか? Delphiでは通常、編集前に現在のレコードを取得します。 –
a)他のアプリはアプリと同じマシンで動作していますか? b)それらはデータベースに変更を加える唯一のアプリですか、c)あなたが書いた他のアプリですか? – MartynA