2

System.Data.Linq.Table<T entity> メソッドのパフォーマンス特性が見つかりません! insertonSubmit や deleteonSubmit などのメソッドを参照します。これらのメソッドは O(1) または O(n) ですか?

4

2 に答える 2

1

InsertOnSubmitDeleteOnSubmitは単一のオブジェクトを取るため、そのパフォーマンスは次のようになります。O(1)挿入キューに追加するだけで、順序付けされていないすべてのコンテナーに対してO(1)償却されます。O(1)

InsertAllOnSubmitDeleteAllOnSubmit一方、 はメソッドO(N)に渡されるNの長さです。IEnumerable

于 2013-02-02T14:59:16.767 に答える
1

基になるテーブルのサイズに関して O(n) を意味していると思いますが、関数を呼び出すだけでなく、送信されたら話していると思います (前述の O(1) です)。私は LINQ の実装を見たことがありませんが、その経験と SQL の理解から、挿入メソッドは既存のテーブルに関して O(n) であり、方法に関して O(n) である必要があります。多くの提出物があります。

すべてが一度に送信されるため、トランザクション、または挿入ステートメントの結合であると想定しています。つまり、最初の挿入のみが O(n) を受け、残りは O(1) になります。

O(n) よりも早く delete ステートメントを実行する方法はないと思うので、それくらいの時間がかかると思います。

もちろん、LINQ は SQL に変換するだけで、実際の実装はデータベース サーバーに任せているため、これの多くはデータベース サーバー次第です。

于 2013-02-02T15:01:22.467 に答える