애드혹 쿼리란?
저는 SQL에 관한 책을 읽고 있습니다.그 책에는 애드혹 쿼리라는 용어가 있는데, 저는 이해할 수 없습니다.
애드혹 쿼리란 정확히 무엇입니까?
애드혹은 라틴어로 "이 목적을 위해"입니다.이를 "즉시" 쿼리 또는 "그저 그렇다" 쿼리라고 할 수 있습니다.필요한 곳에 느슨하게 입력하는 SQL 쿼리입니다.
var newSqlQuery = "SELECT * FROM table WHERE id = " + myId;
마다 완전히 입니다. .이는 코드 라인이 실행될 때마다 완전히 다른 쿼리입니다. 값에 따라myId임시 쿼리의 반대는 저장 프로시저와 같은 미리 정의된 쿼리입니다. 저장 프로시저에서는 해당 테이블에서 선택하는 전체적인 일반적인 목적에 대한 단일 쿼리를 생성하고 ID를 변수로 전달합니다.
임시 쿼리는 쿼리가 실행되기 전에 확인할 수 없는 쿼리입니다.필요할 때 정보를 얻기 위해 생성되며 동적으로 구성된 SQL로 구성되며 일반적으로 데스크톱에 상주하는 쿼리 도구로 구성됩니다.
확인: http://www.learn.geekinterview.com/data-warehouse/dw-basics/what-is-an-ad-hoc-query.html
임시 쿼리는 DB 서버에서 사용 가능한 임의의 테이블 또는 여러 개의 병합된 테이블에서 특정 레코드 집합을 제공하기 위해 작성된 쿼리입니다.이러한 쿼리는 일반적으로 일회용이므로 나중에 다시 실행하기 위해 저장 프로시저에 통합할 필요가 없을 수 있습니다.
임시 시나리오:고유 변수 집합이 있는 특정 데이터 부분 집합에 대한 요청을 수신합니다.필요한 결과를 제공할 수 있는 사전 작성된 쿼리가 없는 경우 레코드 집합 결과를 생성하기 위해 임시 쿼리를 작성해야 합니다.
단일 사용 외에도 Ad-hoc 쿼리는 저장 프로시저, 즉 DB 인터페이스 도구 내에 저장된 쿼리입니다.그런 다음 이러한 저장 프로시저를 모듈 또는 매크로 내에서 순차적으로 실행하여 요청 시, 예약 시 또는 다른 이벤트에 의해 트리거된 사전 정의된 작업을 수행할 수 있습니다.
저장 프로시저 시나리오:매월 동일한 테이블 집합과 동일한 변수(이러한 변수는 특정 미리 정의된 값, "현재 월 말"과 같은 계산된 값 또는 사용자 입력 값일 수 있음)에서 보고서를 생성해야 합니다.이 절차는 처음에 임시 쿼리로 생성되었습니다.결과를 테스트하여 정확성을 확인한 후 이 쿼리를 배포하도록 선택할 수 있습니다.그런 다음 모듈 또는 매크로에 쿼리 또는 일련의 쿼리를 저장하여 필요에 따라 다시 실행할 수 있습니다.
임시 쿼리는 쿼리가 실행되기 전에 확인할 수 없는 쿼리입니다.필요할 때 정보를 얻기 위해 생성되며 동적으로 구성된 SQL로 구성되며 일반적으로 데스크톱에 상주하는 쿼리 도구로 구성됩니다.임시 쿼리는 시스템 또는 데이터베이스 관리자에 상주하지 않지만 데이터 사용자의 필요에 따라 동적으로 생성됩니다.
SQL에서 임시 쿼리는 값이 일부 변수에 따라 달라지는 느슨한 형식의 명령/쿼리입니다.명령이 실행될 때마다 변수 값에 따라 결과가 달라집니다.미리 결정할 수 없으며 일반적으로 동적 프로그래밍 SQL 쿼리 아래 있습니다.애드혹 쿼리는 짧은 시간 동안 실행되며 런타임에 만들어집니다.
임시 쿼리는 정기적으로 필요하지 않은 정의되지 않은 쿼리이므로 일반적인 보고서 또는 쿼리 집합에 포함되지 않습니다.
임시 명령문은 T-SQL 명령문으로 Where 절이 있고 Where 절은 실제로 다음과 같은 리터럴을 가질 수 있습니다.
Select * from member where member_no=285;
또는 변수:
declare @mno INT=285;
Select * from member where member_no=@mno
임시 쿼리 -
- 이러한 유형의 쿼리는 모든 실행에서 동일한 출력 값을 갖는 미리 정의된 쿼리와 대조적으로 "특수한 목적"을 위해 설계되었습니다.
- 매번 실행되는 임시 쿼리 명령이지만 변수 값에 따라 결과가 다릅니다.
- 미리 결정할 수 없으며 일반적으로 동적 프로그래밍 SQL 쿼리 아래 있습니다.
- 애드혹 쿼리는 짧은 시간 동안 실행되며 런타임에 만들어집니다.
또한 임시 쿼리가 SQL 주입 공격에 취약하다는 것을 추가하려고 합니다.우리는 그것을 사용하는 것을 피하고 대신 매개 변수화된 SQL을 사용해야 합니다(Java의 Prepared Statement처럼).
애드혹 쿼리는 다음과 같습니다.
- 미리 계획된 질문입니다.
- 미리 예약된 질문입니다.
- 순간적인 질문의 자극
- 결과를 반환하지 않는 질문입니다.
임시 쿼리는 컴퓨터 정의 유형입니다.즉, 이 쿼리는 필요할 때만 모든 정보를 얻기 위해 특별히 설계된 것입니다.미리 정의된.이 https://www.youtube.com/watch?v=0c8JEKmVXhU 을 참조하십시오.
SQL Server에서 "애드혹 쿼리"는 애드혹 분산 쿼리에도 사용됩니다.이러한 쿼리는 OpenRowset 또는 OpenData 원본을 통해 다른 서버에 있는 임시 쿼리입니다.임시 분산 쿼리는 구성한 후에만 허용됩니다.이것은 서버 구성 옵션입니다.
언급URL : https://stackoverflow.com/questions/2460954/what-is-ad-hoc-query
'programing' 카테고리의 다른 글
| 내가 일하지 않는 걸 기억해줘요..java.dll을 던집니다.잘못된 상태 예외:사용자 세부 정보 서비스가 필요합니다. (0) | 2023.07.24 |
|---|---|
| spring.data source의 가능한 값은 무엇입니까?초기화 모드? (0) | 2023.07.24 |
| Jackson 문자열을 개체로 변환하는 중 (0) | 2023.07.24 |
| 스프링 부트 - 속성이 설정되지 않은 경우 감지 및 종료하시겠습니까? (0) | 2023.07.24 |
| ng 빌드 중 호출 재시도 횟수가 예외를 초과했습니다. (0) | 2023.07.24 |