TypedTableにデータベーステーブルをロードし、そのキーが既に存在する場合は更新するコードの問題、更新部分に問題がある私のコードは非常に遅いですが。DataTable、VB.NETの行の挿入/更新
私が扱うテーブルのほとんどは完全なリフレッシュが必要なので、単純なAddTableRow(row)
プロシージャを使用してデータを消去し、タイプテーブルの別のテーブルからすべてを再追加しますが、データ私はLoadDataRow(row, fAcceptChanges)
関数を使用していますが、.BeginLoadData() -> .EndLoadData()
であっても、約500k行のデータを含むテーブル(すべての行は15 colsのようなものです)では非常に遅い(1秒あたり2/3更新)。
私はvb.netの初心者ですので、私はデータテーブルを更新する必要があります。しかし、誰かがそれをスピードアップする方法を知っていれば、私は本当にすべてを聞いてうれしいでしょう。
いくつかの詳細情報:
私は、挿入部から引き上げexeptionsを扱うことができるように、私のテーブルの制約をチェックする必要があり、加えて自動ので、ほとんど私は行ごとにデータを挿入していますので、理由がありますTypedDataTable
の制約チェックでは、10以上のdbテーブルを処理する必要があると考えると、かなり良いです。このATMのように実行し、更新のための
マイコード:
Table = Parser.GetData()
TypedTable = TableAdapter.GetData()
For Each row In Table
Try
Dim TypedRow = TypedTable.NewRow()
LoadNotTypedIntoTyped(row, TypedRow)
TypedTable.BeginLoadData()
TypedTable.LoadDataRow(TypedRow.ItemArray, True) 'TODO speed up this
TypedTable.EndLoadData()
Catch ex As Exception
'Generic exception handling here
End Try
Next
SqlBulkCopyLoadProcedure()
:SQLが、私は何をしたかのコードDBの初心者だ私が間違っている場合ので、私は矛盾ここ
コード、説明、価格などで私はhw/swコードを主キーとして使用してテーブルを扱うので、それは英数字の文字列です – Forna