[SQL] 임시 쿼리 동적 SQL [폐쇄] VS 프로 시저 VS
SQL임시 쿼리 동적 SQL [폐쇄] VS 프로 시저 VS
임시 쿼리 동적 SQL 대 저장 프로 시저 대. 누구 말의 장단점 수 있습니까?
해결법
-
==============================
1.저장 프로 시저
저장 프로 시저
동적 SQL (즉 저장 프로 시저 내에 exec 명령을 사용)
임시 SQL (비즈니스 코드에서 만든 즉)
참고 : 항상 임시 SQL을 매개 변수화.
OLAP 임시 SQL의 경우 : 유일한 매개 변수화 문자열 데이터. 이 만족 두 가지 조건. 그것은 SQL 주입 공격을 방지 할 수 있습니다. 그리고 쿼리는 데이터베이스에 더 독특한 보이게한다. 예, 당신은 가난한 쿼리 계획 캐시 적중률을 얻을 수 있습니다. 하지만 그 OLAP 쿼리 것이 바람직합니다. 자신의 데이터 세트와 가장 효율적인 계획이 지정된 파라미터들 사이에서 매우 다양하기 때문에 그들은 고유 한 계획을 생성 혜택을 누릴 수 있습니다.
-
==============================
2.저장 프로 시저의 장점 :
저장 프로 시저의 장점 :
저장 프로 시저의 단점 :
-
==============================
3.이럴 저장 프로 시저가 전염병처럼 피해야한다. 여기에 당신이 그들을 (모든 데이터베이스에 적용) 사용하지 않을해야하는 이유에 대한 내 머리 위로 떨어져 열 좋은 이유는 다음과 같습니다
이럴 저장 프로 시저가 전염병처럼 피해야한다. 여기에 당신이 그들을 (모든 데이터베이스에 적용) 사용하지 않을해야하는 이유에 대한 내 머리 위로 떨어져 열 좋은 이유는 다음과 같습니다
아마도 키 확인하거나 데이터 형식 변환 아니면 트리거 내에서, 비슷한, 그렇게 중요한 그것의 존재를 정당화하고 아마하지 않습니다 이제까지 것을 - 매우 구체적인 데이터베이스 기능의 경우 : 내가 사용을 제재 할 만 한 곳이있다 작성 후 변경합니다.
일반적으로, 당신은 저장 프로 시저에서 비명을 실행해야합니다!
-
==============================
4.저장 프로 시저
저장 프로 시저
임시 동적 - 빌 Paetzke의 답변과 의견을 참조하십시오.
또한, 이러한 목록에없는 여전히 고려되어야한다 SQL에 대한 대량 삽입 등의 패턴을 잊지 마세요.
-
==============================
5.RDBMS? 이 답변은 나이가 오라클에 특정
RDBMS? 이 답변은 나이가 오라클에 특정
이전 Oracle 버전 <11 년, 동적 SQL은 재사용 SGA의 SQLTEXT 계획을 존재하지 않습니다, 그것은 모든 실행 계획을 파서 요구에 대한 새 항목을 작성합니다. 이 많은 동적 SQL은 SQLTEXT 영역이 쿼리 재사용 방법 아래로가는 것을 플러시 충분히 빨리를 얻을 수 호출 peformance 아래에 다음과 같습니다.
-
==============================
6.하나의 또 다른 장점은 (주요 업그레이드를 위해 당신은 여전히 약간의 다운 타임을 incure 수) 쉽게 "다운 타임 업그레이드"입니다.
하나의 또 다른 장점은 (주요 업그레이드를 위해 당신은 여전히 약간의 다운 타임을 incure 수) 쉽게 "다운 타임 업그레이드"입니다.
모든 데이터 액세스 저장 프로 시저를 통해 수행되는 경우, 당신은 쉽게 v1을 가질 수 있으며, 저장 프로 시저의 V2는 나란히 앉아있다.
지금 당신은 V1에서 각각의 저장 프로 시저의 자신의 버전을 호출이 나란히 v2를 바이너리 / 응용 프로그램 논리를 할 수 있습니다.
아니오 다운 시간 DB 변경 배포 읽기 전용 모드로 V1 앱 (적용 가능한 경우), (2)을 잠그는 (1)를 통해 달성된다. 3, 옆에 v2를 응용 측을 배포 V1 응용 프로그램, 4,에 일반 액세스를 다시 활성화, 새로운 바이너리를 사용하여 새로운 사용자를 말한다. 더 이상 사용자가 기존 바이너리를 사용하지 않는 경우 6. 기존 바이너리를 종료합니다.
from https://stackoverflow.com/questions/2934634/ad-hoc-queries-vs-stored-procedures-vs-dynamic-sql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 별명을 가지고 있어야에서 하위 쿼리 (0) | 2020.05.10 |
---|---|
[SQL] 어떻게 T-SQL의 형식 번호에 연결하여 숫자 및 문자열에? (0) | 2020.05.10 |
[SQL] 모델 고객에게 가장 좋은 방법 <-> 주소 (0) | 2020.05.10 |
[SQL] SQL의 다른 컬럼의 각 값에 대해 가장 일반적인 값을 가져옵니다 (0) | 2020.05.10 |
[SQL] 다른 테이블에 새로운 행의 값 삽입 SQL 서버 트리거 (0) | 2020.05.10 |