2013-02-02 3 views
2

System.Data.Linq.Table < T entity> 메서드의 성능 특성을 찾을 수 없습니다! 나는 insertonSubmit 및 deleteonSubmit과 같은 메소드를 참조한다. 이 방법들은 O (1) 또는 O (n)입니까? 성능은 O(1)되어야하므로LINQ to SQL 테이블 클래스 성능

답변

1

InsertOnSubmitDeleteOnSubmit가 단일 객체를 취 그들이 모두가 삽입 큐에 추가되는 어느 쪽 O(1) 또는 모든 순서화 용기 상각 O(1).

InsertAllOnSubmitDeleteAllOnSubmit 반면에, O(N), N 메소드로 전달 IEnumerable의 길이가된다.

+0

내가 알고 싶었던 것입니다. 도와 줘서 고마워! –

1

나는 당신이 기본 테이블의 크기면에서 O (n)을 의미한다고 가정하고 함수가 호출 된 것이 아니라 (O (1) 언급 한 바와 같이) 일단 호출되면 이야기하고있는 것입니다. 나는 LINQ의 구현을 보지 못했지만, SQL에 대한 이해와 경험을 바탕으로 삽입 방법은 기존 테이블의 관점에서 O (n)이어야하고, 기존 테이블의 관점에서 O (n)이어야한다. 많은 제출물이 있습니다.

모든 것이 한번에 제출되었으므로 트랜잭션 또는 삽입 문의 통합이라고 가정합니다. 첫 번째 삽입 만 O (n)을 앓고 나머지는 O (1).

삭제 진술을 O (n)보다 빨리 수행 할 방법이 없다고 생각합니다. 그래서 그 소요 시간을 가정하고 있습니다.

물론 LINQ는 SQL로 변환되어 실제 구현을 데이터베이스 서버에 남겨 둡니다. 많은 부분이 데이터베이스 서버에 달려 있습니다.

+0

주요 포인트는 SQL이 가져온 것이면 무엇이든간에 손으로 쓰는 SQL로도 더 빨라지는 재미를 보게됩니다. 많은 경우에 그냥 작동하지 않습니다. – TomTom