그래서 ID 번호를 사용하여 데이터 행별로 작동하는 여러 저장 프로 시저를 작성했습니다. 내 데이터베이스 구성표의 여러 수준에서이 저장 프로 시저를 호출 할 수있는 여러 저장 프로 시저를 유지하고 싶습니다. 예를 들어, 행이 삽입되면이 저장 프로 시저를 호출합니다. 다른 것이 수정되면 각 줄에 대해이 저장 프로 시저를 호출하고 싶습니다. 그래서 다른 곳에서는 호출 할 수있는 기본 코드 세트를 가질 수 있지만 이는 다른 양의 데이터에 대해 작동합니다. Cursor로이 결과를 얻을 수 있었지만, 이것들은 매우 비효율적이라고 들었습니다. 성능을 희생하지 않고 이러한 종류의 기능을 구현하는 다른 방법이 있습니까? 감사.다양한 저장 프로 시저의 성능을 최적화하는 T-SQL 질문
답변
예. 표준 조인을 사용하여 RBAR (Row By Agonizing Row) 대신 집합에서 작업하십시오. 즉, 각 행에 대해 함수를 호출하는 대신 적용 가능한 모든 행에서 필요한 연산을 집합 연산으로 수행하는 조인을 설계하십시오.
종종 devs는 '각 행에서 작동하는 기능'을 사용합니다.이 기능이 논리를 캡슐화하는 확실한 방법 인 것처럼 보이지만 SQL Server 나 대부분의 DB 엔진에서 제대로 작동하지 않습니다.
경우에 따라 테이블 반환 함수를 효과적으로 사용할 수 있습니다 (MS SQL Server).
(BTW, 커서가 비효율적이라고 말하는 것은 맞습니다.)
흠, select 문에서 저장 프로 시저를 호출 할 수 없다고 생각했습니다. ID 번호를 받아서 조인 내에서 호출하는 저장 프로 시저를 어떻게 사용할 수 있습니까? 감사. –
@Bob L : 당신이하지 말라고 제안합니다. –
알 겠어 ... 그래서 기능이나 뭐 그런거야? –
- 1. 저장 프로 시저의 성능을 어떻게 측정합니까?
- 2. 저장 프로 시저의 논리 테스트
- 3. 저장 프로 시저의 오류
- 4. 저장 프로 시저의 오류
- 5. 저장 프로 시저의 오류
- 6. 저장 프로 시저의 진행
- 7. 저장 프로 시저의 대안
- 8. 저장 프로 시저의 트랜잭션
- 9. 저장 프로 시저의 SqlBulkCopy
- 10. 저장 프로 시저의 데이터 결과 저장
- 11. 저장 프로 시저의 임시 테이블
- 12. 저장 프로 시저의 정의 자
- 13. 저장 프로 시저의 버전 변경
- 14. Oracle 저장 프로 시저의 오류
- 15. 저장 프로 시저의 실행 시간
- 16. 저장 프로 시저의 FREETEXT 문제
- 17. 저장 프로 시저의 예외 관리?
- 18. 저장 프로 시저의 비즈니스 로직
- 19. 저장 프로 시저의 시간 확인
- 20. 저장 프로 시저의 행 수
- 21. 저장 프로 시저의 데이터 정렬
- 22. 저장 프로 시저의 sql2000 루프
- 23. 저장 프로 시저의 인수 수
- 24. SQL 저장 프로 시저의 파일
- 25. 저장 프로 시저의 텍스트 분할
- 26. 저장 프로 시저의 회수 횟수
- 27. 저장 프로 시저의 쿼리에서 상수
- 28. 저장 프로 시저의 동적으로 형성된 SQL은 저장 프로 시저의 목적을 부정합니다?
- 29. 저장 프로 시저의 반환 값을 얻는 방법?
- 30. 저장 프로 시저의 이전 버전을 검색하십시오.
밥, "행동하라"는 말은 무엇을 의미합니까? 그 행동을 감사합니까? 이 절차를 통해 참조 무결성을 업데이트하고 있습니까? –