多くのSPのログステップで、エラーログテーブルに何百行も書き込まれ、サーバー上のリソースを使い果たしてしまうSQL DBがあります。 1つの解決策は、ログをメモリに書き込むことでした。ログの数が1000行を超えたら、個々の行を常に書き込むのではなく、ログ表に一括して挿入します。私はCLRの言及を使用していた - 誰もこれを使用する方法について正しい方向に私を指すことができますか?上記の音は実現可能ですか? SPの大規模な数のログ手順は は常にエラー・ログ表に数百行を書き込み、サーバー上のリソースを を使用しているところテーブルにではなくメモリにSQLデータを書き込む
答えて
は私がSQL DBを持っています。一つの解決策は、メモリへとログカウントはその後、あなたは既にメモリに書き込むログテーブル
にこれを挿入 を一括1000行を超えていた後 ログを書き込むようにことを示唆しました。あなたがテーブルに何かを書くとき、あなたは決してディスクに疲れません。すべての操作はメモリ内で行われます。そして、たまには、SQL Serverによって汚れた(変更された)ページがディスクにフラッシュされます。これらの瞬間はcheckpontsです:パフォーマンス上の理由から
、データベースエンジンは、メモリ内のバッファ・キャッシュで データベースページに修正を行い - そして、すべての変更後、ディスクにこれらの ページを書き込みません。むしろ、データベースエンジン は、定期的に各データベースにチェックポイントを発行します。チェックポイントは、メモリからディスクへのトランザクションログ情報 と、トランザクションログに関する情報 を記録します(ダーティページと呼ばれる)現在のメモリ内の変更されたページ(ダーティページ)と トランザクションログ情報を書き込みます。
返信ありがとうございます - これは可能だと思いますか?私はそれをよりうまく説明しようとしています - 各SP内のアクティビティテーブルのキーステップに書き込むSPのロードがあります。 '新しいクライアントを処理し、日付と時刻を追加すると、何千もの行が書き込まれ、サーバー上でパフォーマンスの問題が発生する - チェックポイントを使用してこのデータにフラグを立て、サーバーまたはトリガーとSPを構成して、データの重大な量に達するので、常にテーブルに書き込むのではなく、メモリ上にデータを格納する - ありがとう – andyc209
あなたは間違った方向を見ている。あなたの問題は、サーバーがディスクに書き込むのではなく、繰り返します。すべての挿入物がメモリ上で実行されています。実際のボトルネックは何かを確認する必要があります。たとえば、sys.dm_os_waiting_tasksを使用して待機時間を確認します – sepupic
- 1. C++のメモリにデータを書き込む
- 2. 「メモリ不足」エラーをメモリに書き込まないでファイルに書き込む?
- 3. C#SQLテーブルにdatagridviewデータを書き込む
- 4. F#SQL obj [] []をSQLテーブルに書き込む
- 5. SQL Server 2012でCTEのテーブルに重複エントリを書き込む
- 6. JavaFXでMySQLテーブルにデータを書き込む
- 7. pyspark csvをデータフレームに書き込むことなくディスクに書き込む
- 8. C++データを重複なくファイルに書き込む
- 9. SparkでMongoDBにデータを書き込む
- 10. Pythonでjsonにデータを書き込む
- 11. 支払い時にSQLデータベースにデータを書き込む
- 12. 大量のデータを徐々にメモリに書き込む方法は?
- 13. excel VBAを使用してSQLテーブルに書き込む方法
- 14. データフレームをMySql DBテーブルに書き込む
- 15. Apache Flink:PostgresテーブルにDataStreamを書き込む
- 16. Torchのテーブルをファイルに書き込む
- 17. 大きなファイルをSQL Server FILESTREAMに書き込む方法は?
- 18. テーブルの開始時と終了時にデータを書き込む
- 19. Sparkのcassandraテーブルに少量のデータを書き込む
- 20. 2テーブルからExcelファイルにデータを書き込む
- 21. UIテーブルのデータをCSVファイルに書き込む
- 22. 1つのクエリでcassandraに多くのデータを書き込む
- 23. GeoDataFrameをSQLデータベースに書き込む
- 24. Entity FramworkにSQLクエリを書き込む
- 25. SQLデータベースにフォームデータを書き込む
- 26. SQL Serverデータに日付を書き込むR
- 27. Python APIからcsvにsqlデータを書き込む
- 28. データを任意のフォーマットで読み込み、テーブルに書き込む
- 29. ファイルにデータを書き込む
- 30. Javaサーブレット - ファイルにデータを書き込む
ので、thew実際の質問は何ですか?オンメモリ構造の使い方 – apomene
ログが異なるストアドプロシージャからのものである場合、一括挿入を使用する方法 –
提案はメモリ内のすべてのログをバッファリングし、そこにcritcal量があると一括してテーブルに挿入されます - アイデアは常にすべてを書き込むのではなく彼らが今私たちはそれらをロードし、バッチで送信する時間。 – andyc209