재작성 쿼리

Query rewriting

, 종종 데이터 쿼리 통계, 그리고 다른 메타 데이터고,지만 더 나은 성과를(예를 들어, 또는 낮은 메모리 사용과 빠른)으로 실행하죠 같은 결과를 낳다 다른 쿼리의 집합을 양품률 데이터베이스 테이블, 검토 및/또는 쿼리들, 보통개의 집합이 걸린다 쿼리를 다시 쓰고는 전형적인 자동 변환.[1]쿼리 개서는 관계대수 또는 그 확장에 기초할 수 있다(예를 들어 정렬, 집계 및 SQL의 경우와 같이 3개의 값 술어가 있는 다중 집합 관계대수).관계대수의 동등성 규칙은 이용된다. 다시 말해, 다른 쿼리 구조와 순서가 수학적으로 동일한 결과를 산출한다는 것을 증명할 수 있다.예를 들어 필드 A와 B에 대한 필터링이나 R과 S의 교차 결합은 임의의 순서로 실행할 수 있지만 성능 차이가 있을 수 있습니다.여러 작업을 조합하여 작업 순서를 변경할 수 있습니다.

쿼리 개서의 결과는 원래 쿼리 세트와 동일한 추상화 수준 또는 Application Programming Interface(API; 응용 프로그램프로그래밍 인터페이스)가 아닐 수 있습니다(대부분이지만).예를 들어 입력 쿼리는 관계대수 또는 SQL 형식일 수 있으며, 다시 작성된 쿼리는 데이터의 물리적 표현(예: 배열 연산)에 가까울 수 있습니다.쿼리 재작성에는 뷰 및 기타 서브쿼리의 구체화도 포함됩니다.API 사용자가 사용할 수 있는 조작과 사용할 수 없는 조작이 포함됩니다.쿼리 재작성 변환은 옵티마이저가 선택할 수 있는 인덱스 작성(일부 데이터베이스 시스템은 유용하다고 판단되는 경우 자체 인덱스 작성), 특정 인덱스 사용을 의무화하거나 구체화 및/또는 비정규화 뷰를 작성하거나 데이터베이스 시스템이 데이터에 대한 통계를 수집하고 쿼리 사용을 최적화하는 데 도움을 줌으로써 지원할 수 있습니다.y는 데이터 패턴과 일반적인 쿼리 사용에 따라 달라집니다.

쿼리 개서는 규칙[2] 기반 또는 최적화 기반일 수 있습니다.일부 소스에서는 쿼리 개서를 최적화 전에 사용자가 접근할 수 있는 대수 API([citation needed]예: SQL) 수준에서 작동하는 별개의 단계로 설명합니다.

검색 [3]엔진에 의한 쿼리 재작성 등 거의 관련이 없는 다른 개념도 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Vassilakopoulos, Michael; Tzouramanis, Theodoros; Terenziani, Paolo; Patel, Chintan; Weng, Chunhua; Romero, Rafael; Mazón, Jose-Norberto; Trujillo, Juan; Serrano, Manuel; Piattini, Mario; Buragohain, Chiranjeeb; Suri, Subhash; Zhu, Xingquan; Risch, Tore; Bu, Yingyi; Chi-Wing Wong, Raymond; Fu, Ada Wai-Chee; Chirkova, Rada; Gupta, Amarnath; Vechtomova, Olga; He, Ben; Risch, Tore; Tata, Sandeep; Patel, Jignesh M.; Lacroix, Zoé; Bouganim, Luc; Pitoura, Evaggelia; Neumann, Thomas; Tan, Kian-Lee; et al. (2009). "Query Rewriting". Encyclopedia of Database Systems. pp. 2308–2309. doi:10.1007/978-0-387-39940-9_863. ISBN 978-0-387-35544-3.
  2. ^ Pirahesh, Hamid; Hellerstein, Joseph M. "Extensible/Rule Based Query Rewrite Optimization in Starburst". citeseerx.ist.psu.edu. Retrieved 2020-04-06.
  3. ^ Williams, Hugh E. (2012-03-20). "Query Rewriting in Search Engines". Hugh E. Williams. Retrieved 2020-04-06.