쿼리 1 : (빠른 번개)왜 매개 변수를 인수로 전달되는 경우 느리게 실행 sp_executesql을 수행
sp_executesql "select * from tablesView where Id = 1"
대
질의 2 : (너무 느린)
sp_executesql "select * from tablesView where Id = @Id", N"@Id int", @Id=1
tablesView - a view containing multiple joins
LINQ는 항상 쿼리를 Query2 형식으로 변환하므로 성능이 매우 나쁩니다.
질문 : 쿼리 속도가 느려질 경우 이유가 필요하고 해결 방법이있는 경우 해결 방법이 필요합니다. 그리고 LINQ를위한 해결책.
---- 추가 의견 :성능 저하가 확실히 있기 때문에 순위 기능 (ROW_NUMBER)를 사용하는 2 열입니다하지만 난 그들이 필요를 피할 수 없다.
당신은 ID = 1 행을 많이 가지고 있습니까 :
기사는 어떤 매개 변수 스니핑 설명 여기에있다? –
@Lasse, 50 레코드가 있더라도 그 차이는 엄청납니다. 0 초 vs 10 초, 한 가지는 select * 테이블에서와 같이 일반적으로 많은 조인이있는보기입니다. – WhoIsNinja
'@ id'에 전달 된 데이터 유형은 무엇입니까? 암시 적으로 캐스트를 사용하여 인덱스 사용을 막을 수 있습니다. –