내 asp.net 응용 프로그램에서 양식을 제출할 때 저장 프로 시저가 얼마나 오래 걸릴지 사용자에게 보여주고 싶습니다. asp.net 응용 프로그램에서 찾을 수있는 방법이 있습니까? SQL Server에서 예상 비용으로 쿼리 계획을 예측 한 것과 같습니다. asp.net 웹 페이지에 표시 할 수 있습니까?asp.net의 SP에 대한 예상 비용
답변
당신은 그것을 실행하지 않을 그러나 XML을 반환하는 (쿼리를 실행 한 후 명령
set showplan_xml on
을 사용할 수 있습니다. 그런 다음 당신은 후 수 있습니다 예상 속성에 대한 XML을 구문 분석 할 수 있습니다.
대한샘플 XML
select top 10 * from master..spt_values
출력
<ShowPlanXML xmlns="http://schemas.microsoft.com/sqlserver/2004/07/showplan" Version="1.0" Build="9.00.3080.00">
<BatchSequence>
<Batch>
<Statements>
<StmtSimple StatementText="select top 10 * from master..spt_values
" StatementId="1" StatementCompId="1" StatementType="SELECT" StatementSubTreeCost="0.00333664" StatementEstRows="10" StatementOptmLevel="TRIVIAL">
<StatementSetOptions QUOTED_IDENTIFIER="false" ARITHABORT="true" CONCAT_NULL_YIELDS_NULL="false" ANSI_NULLS="false" ANSI_PADDING="false" ANSI_WARNINGS="false" NUMERIC_ROUNDABORT="false" />
<QueryPlan CachedPlanSize="9" CompileTime="0" CompileCPU="0" CompileMemory="56">
<RelOp NodeId="0" PhysicalOp="Top" LogicalOp="Top" EstimateRows="10" EstimateIO="0" EstimateCPU="1e-006" AvgRowSize="68" EstimatedTotalSubtreeCost="0.00333664" Parallel="0" EstimateRebinds="0" EstimateRewinds="0">
<OutputList>
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="name" />
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="number" />
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="type" />
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="low" />
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="high" />
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="status" />
</OutputList>
<Top RowCount="0" IsPercent="0" WithTies="0">
<TopExpression>
<ScalarOperator ScalarString="(10)">
<Const ConstValue="(10)" />
</ScalarOperator>
</TopExpression>
<RelOp NodeId="1" PhysicalOp="Clustered Index Scan" LogicalOp="Clustered Index Scan" EstimateRows="10" EstimateIO="0.0142361" EstimateCPU="0.0027376" AvgRowSize="68" EstimatedTotalSubtreeCost="0.00333564" Parallel="0" EstimateRebinds="0" EstimateRewinds="0">
<OutputList>
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="name" />
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="number" />
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="type" />
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="low" />
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="high" />
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="status" />
</OutputList>
<IndexScan Ordered="0" ForcedIndex="0" NoExpandHint="0">
<DefinedValues>
<DefinedValue>
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="name" />
</DefinedValue>
<DefinedValue>
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="number" />
</DefinedValue>
<DefinedValue>
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="type" />
</DefinedValue>
<DefinedValue>
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="low" />
</DefinedValue>
<DefinedValue>
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="high" />
</DefinedValue>
<DefinedValue>
<ColumnReference Database="[master]" Schema="[dbo]" Table="[spt_values]" Column="status" />
</DefinedValue>
</DefinedValues>
<Object Database="[master]" Schema="[dbo]" Table="[spt_values]" Index="[spt_valuesclust]" />
</IndexScan>
</RelOp>
</Top>
</RelOp>
</QueryPlan>
</StmtSimple>
</Statements>
</Batch>
</BatchSequence>
</ShowPlanXML>
위 내용은 귀하의 요청에 대한 문자 적 해석이지만 "비용"은 중요한 의미가 없습니다. 측정 단위 나 시간과의 상관 관계가없는 통계 값입니다.
최저
는전체적으로 예상되는 행 수와 필요한 조인 종류를 아는 것은 여전히 유용 할 수 있지만 수동으로 계산하고 많은 조건을 고려해야합니다. – RichardTheKiwi
도움을 주셔서 감사합니다, 나는 그것을 – Zerotoinfinity
당신은, 과거의 실행의 기록을 복용함으로써 시간을 추정 할 수 ... 그들은 XML 계획을 반환 시작하기 때문에 작동이 중지 (연결 풀링과 더 나쁜) 다른 쿼리 않도록, 새로운 연결을 사용하는 평균 및 사용자에게 평균 소요 시간을 알려줍니다.
Dynamic Management Views and Functions을 사용하여이 SP에 대해 SQL Server에 쿼리 할 수도 있습니다.
+1 그것을 할 수있는 좋은 방법입니다 활용할 수있을 것 같아요. 이 페이지는 또한 "과거 실적은 미래의 결과를 보장하지 않습니다"*라는 작은 인쇄 텍스트를 추가해야합니다. –
- 1. ASP.NET의 예상 오류 표시
- 2. 비용
- 3. 개발 비용 대 유지 보수 비용
- 4. ASP.NET의 MultiView에 대한 대안
- 5. 로깅 비용 대비 예외 생성 비용
- 6. 캐스팅 비용?
- 7. 비용 데코레이터
- 8. C에서 null 허용 문자열을 SP에 전달하는 방법
- 9. Java에서의 작업 비용
- 10. GWT 비용 아키텍처
- 11. MySQL 상업 라이센스 비용
- 12. 새로운 .Net 프로세스의 비용
- 13. ASP.Net의 Javascript 명령에 대한 질문
- 14. ASP.NET의 MSSOAP.SoapClient30에 대한 PHP 대안
- 15. ASP.NET의 스레드에 대한 이상한 동작
- 16. asp.net의 사이트에 대한 제어 권한
- 17. asp.net의 데이터베이스에 대한 연결 코드
- 18. ASP.NET의 web.config 파일에 대한 대안
- 19. ASP.Net의 javascript 출력에 대한 XSS
- 20. asp.net의 gridview에 대한 검사가 더럽습니까?
- 21. API 호출 비용 결정
- 22. 정규 표현식의 예상 구문에 대한 설명
- 23. 레일에서 컨트롤러 액션에 대한 예상 파라미터를 정의하십시오.
- 24. Symfony/Doctrine의 Sluggable 빌더에 대한 예상 경로
- 25. SQL Server 인덱스 비용
- 26. SQL Server : 예상 실행 계획
- 27. 스케일링 비용 레일과 스케일링 비용 PHP 대 파이썬 프레임 워크
- 28. 예상 ctor
- 29. 혜택 비용 분석 라이브러리
- 30. 종속성 속성 사용 비용
예상 쿼리 계획에 시간이 표시되지 않습니다. 계획에있는 다른 기능과 관련된 정보를로드하는 "비용"만 표시합니다. 그것에 "시간"을 첨부 할 수 없습니다. –
@ 마이클 : 귀하의 의견을 주셔서 감사합니다, 그 asp.net webform에 그 비용을 보여줄 수있는 방법이 있습니까? – Zerotoinfinity
너무 많은 변수가 있습니다. 대부분의 경우 최적화 프로그램의 계산 (시스템의 사용자 수, 다른 시간에 동시에 실행되는 다른 쿼리 등)을 벗어나서 합리적으로이를 계산합니다. –