問題タブ [sqldependency]
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.
oracle10g - 依存関係の順序でテーブルをインポートするコード
私は Windows 環境で作業しており、Oracle SQL Developer を使用しています。私は、約 50 個の csv ファイルで構成される組織のデータベース全体を持っています。それぞれがテーブルに対応します。実行するタスクは 2 つあります。
データ全体を最初から oracle データベースにインポートする必要があります。したがって、テーブルの依存関係を考慮して、特定の順序でロードする必要があります。スクリプトやコードを書くように、自動化したい。依存関係のツリー全体があります。
(実際には一度しか実行されませんが)。
また、目的に適した言語や、どのように仕事を始めればよいか教えていただけますか?すべてのアップロードが完了した後、テーブルを更新するクエリを取得すると、必要なすべてのテーブルを更新する必要があります。
そのプロセスは、他の多くの組織に対して実行する必要があります。
私はOracleを初めて使用するので、学ぶための良いリンクも提供していただければ幸いです
私の答えを見つけるのに最も近かったのはこれでした-> Oracle Forms Dependency
c# - クエリ通知の SQL Server 2008 R2 デッドロック (SqlDependency)
SQL Server 2008 R2 でデッドロックの問題が発生しています。SQL プロファイラーでデッドロック グラフを見ると、問題はクエリ通知に起因するようです。
これらのクエリ通知は、SQLDependency を使用して実装されます。SQLDependency によって監視されているテーブルを更新するときに、デッドロックが発生しているようです。
デッドロック グラフの構文がよくわかりません。KeyLock モードは、シリアライズ可能なトランザクション分離レベルを使用している場合のみ RangeS-U です。、 右 ?
この質問も読みました... READ_COMMITED_SNAPSHOT を有効にする必要がありますか?
どうも...
c# - C# - SqlDependency を使用して SQL Server への変更を検出する方法は?
データベースの変更を待機する Windows サービスがあります。
それが見るデータベーステーブルは次のようになります:
ID [ガイド]
名前 [テキスト]
MatchId [Guid] => これは外部キーです
MatchDateTime [日時]
誰かが「MatchId」フィールドを「クリア」した (NULL が割り当てられた) たびにサービスが検出するようにしたいのですが、
次に、「MatchId」フィールドに「NULL」が含まれるすべての行に対して、それらの一致を見つけて「MatchId」フィールドを割り当てるアルゴリズムを実行します。
問題は、「SqlDependency」クラスを使用し、それが「MatchId」フィールドでトリガーされるのを待つ場合、新しい行が影響を受ける場合にのみ通知されますが、「MatchId = NULL」の既存の行は通知されません。について知る。
これは、Windows サービスがロードされ、テーブルに「MatchId = NULL」の行が既に 20 行あり、次の 5 時間は誰も「MatchId」行を「クリア」しない場合、つまり、私にはわからないことを意味します。既存の 20 行についてであり、それらを処理しません。
1 つの解決策は、「SqlDependency」をセットアップする前に、「MatchId = NULL」の既存の行があるかどうかを確認するために簡単な「選択」を実行し、存在する場合はそれらを処理してから、依存関係をセットアップすることです。
問題は、これらの行の処理が終了してから SqlDependency を設定するまでの短い間隔で、誰かが行を 'MatchId = NULL' に変更したというイベントが発生する可能性があることです。 Sql依存関係。
これをどのように解決できるか考えていますか?
(最悪の場合は、SqlDependency を使用せず、XXX 分ごとにデータベースをポーリングする必要があります ...)
c# - C#.NET SqlDependency
.NETでのSqlDependencyの使用法について質問があります。ドキュメントを読みましたが、OnChangeイベントが独自のスレッドで呼び出されるかどうかはまだわかりません。たとえば、30の同時イベントを取得した場合、それぞれが独自のOnChange偶数ハンドラーを取得しますか?私が尋ねている理由は、OnChangeハンドラーで実行されている作業が次のイベントをブロックしている場合、これを使用してエンジンを作成したくないからです。
たとえば、OrdersデータベースのSqlDependencyがあり、新しい注文があるたびにOnChangeイベントを受け取り、ユーザーの注文を処理できます。これは他の人が入ってくるのを妨げませんよね?
また、この方法を使用して問題が発生しましたか?SqlDependencyは非常に強力な機能のように思われるので、このように機能することを願っています。;)
ありがとう
c# - 複数のプロセス間でワーク キューを分割する
ワークキューと SqlDependency がぴったりだと思う状況がありますが、すべてをつなぎ合わせるのに苦労しています。
1000 個のエンティティがあり、各エンティティを異なる間隔 (つまり、15 分、30 分、または 45 分) で「処理」する必要があるとします。より多くの作業を探すために SQL Server を毎分ポーリングすることなく、作業を複数のプロセスに分割したいと考えています。SqlDependency / クエリ通知に関連する多くの記事を読みましたが、作業をキューに入れる方法と、各プロセスを一連の作業項目に制限する方法がわかりません。
次のような SqlDependency クエリを作成しました。
クエリは 0 の結果で実行されますが、15 分が経過すると、このレコードセットが変更されます (レコードセット内の項目が増えます)。通知は発生しません。この方法ではうまくいかないと思うので、作業項目をキューに入れる方法に行き詰まっています。
また、2 つのプロセスを同じ作業キューにアタッチすると、各プロセスに通知されますが ( select * from dbo.entity
SqlDependency クエリを実行してレコードを変更すると)、両方とも同じ作業項目を受け取ります。どのサーバーがオンラインで、どのサーバーがメンテナンスのためにオフラインであるかに応じて、リスナーの数が 2 または 12 になる可能性があるため、使用可能なプロセス間で作業項目を分割する必要があります。
クライアントは C# で記述されます。
既知のパターン、考え、または方向性は非常に高く評価されます。
c# - IISの一貫性のないSQL依存関係を持つc#ロングポーリング
顧客からの要件は、データベース内の特定のテーブルになんらかの種類の変更があるたびに、更新されたデータを画面に表示できるようにすることでした。
DB に Job テーブルがあり、その内容はブラウザーの GridView に表示されます。要件は、Jobs テーブルで更新、削除、または挿入が発生するたびにグリッド データを更新することです。
これを実装するために、SQL 依存関係とロング ポーリング手法を使用しました。SQL 依存関係は、DB の変更を asp.net に通知し、ロング ポーリングは、グリッドビューを非同期的に更新し続けます。
これを IIS 7.0 にデプロイしたところ、一貫性のない動作に気付きました。つまり、グリッドビューはほとんどの場合、たとえば 90 ~ 95% 更新されますが、DB テーブルのデータが変更されても更新が行われない場合があります。
誰もこの問題に直面しましたか? このために IIS で必要な特定の構成はありますか? IIS がコメット プログラミングに対応していないことをいくつかの場所で読みました。上記のシナリオは、ユーザーが 1 人しかいないテスト環境で発生します。どんな助けでも大歓迎です。前もって感謝します。
編集:この問題は ASP.Net 開発サーバーでも発生しているようで、IIS に分離されていません。メッセージをログに記録した後、OnChange イベントが一貫してトリガーされないため、SQLDependency が壊れていることがわかりました。
編集 2:クエリを実行するselect * from sys.dm_qn_subscriptions
と、同じ通知サブスクリプション、つまり重複したサブスクリプションに対して複数の行が取得されます。id 列のみが異なります。これが理由でしょうか?はいの場合、サブスクリプション行が重複するのはなぜですか? ASP.NET からサブスクリプションを削除するにはどうすればよいですか?
.net - TOPをSQLDependencyで使用できないのはなぜですか?
SQLDependencyを使用するアプリケーションがあります。新しい行が挿入されたときに、データベーステーブルに挿入された最新の行をユーザーに表示したいと思います。
これは、クエリが単純なselectステートメントの場合は期待どおりに機能しますが、最後に挿入された行を表示したいので、クエリをSELECT TOP
ステートメントとして記述しました。これにより、複数の例外が発生しました。この質問を確認TOP
したところ、SQLDependencyでは無効であることがわかったため、他の解決策を見つける必要があります。
これは私に2つのことを不思議に思いました:
A)SQLDependencyがTOP
式をサポートしていない理由は何ですか?
B)私が思いついた解決策は、IDに基づいて結果を並べ替え、最後の結果を表示することです。これは正常に機能しますが、私のテーブルには現在非常に少ない行があります。データセットを使用しているので、行が追加されると速度が低下すると予想されます。そのため、クエリを最新の行のみに制限したかったのです。これを行うためのより良い方法はありますか?
c# - SqlDependencyクラスを使用して、C#でICollectionViewにEntityFrameworkを入力します
新しい製品がデータベースに追加されたときに、製品を含むICollectionViewオブジェクトを更新したいと思います。
C#でこれを実現するにはどうすればよいですか。DALにEntityFrameworkを使用しています。
c# - SqlDependency 信頼性?
私の現在の状況は、新しいデータがデータベース テーブルに到着したときに通知する必要があるアプリケーションを持っているということです。データは外部ソースからのものです (私には制御できません。これが唯一の統合オプションです)。新しいデータが到着すると、アプリケーションは特定のアクションを実行する必要があります。基本的には、新しいデータのクエリ、処理、結果のローカル テーブルへの挿入などです。
データはリアルタイムで処理されることが予想されるため、可能であればポーリングは避けたいと考えています。とはいえ、データが失われないようにすることが最優先事項です。
私の質問:
- SqlDependency は一般的に信頼できると考えられていますか?
- 競合状態について心配する必要はありますか? たとえば、ある変更を別の変更が到着したときに処理している場合などです。
- データベースが再起動されるとどうなりますか? アプリが回復して変更の受信を再開するか、または通知を定期的に再サブスクライブする何らかのフェイルセーフ タイマーが必要か?
- このトピックについて読んだ記事のほとんどは、SQL Server 2005 に関するものでした。SQL Server 2008 R2 を使用しています。SqlDependency よりも優先される新しい手法はありますか?
- (編集) また、アプリケーションがダウンした場合はどうなりますか? 起動時に欠落したデータを照会する必要があると思いますか?
c# - SQLDependency -- 無効な SQL
hereからわかることは、このクエリでルールに違反していませんが、変更イベントが無効なステータスで常に発生します。
これを行うと、すべてが正しく機能します。
ただし、これほど多くのデータを返したくはありません。SqlDependency では、サブスクリプションをセットアップ (またはリセット) するために変更イベントが発生するたびに、クエリを 1 回実行する必要があるようです。
私の最初のクエリの欠陥は何か分かりますか?