Omskriving av spørsmål - Query rewriting

Spørringsskriving er en typisk automatisk transformasjon som tar et sett med databasetabeller , visninger og/eller spørringer , vanligvis indekser , ofte samlet data og søkestatistikk og andre metadata , og gir et sett med forskjellige spørringer, som gir de samme resultatene, men utføre med bedre ytelse (for eksempel raskere eller med lavere minnebruk). Spørringsskriving kan være basert på relasjonsalgebra eller en forlengelse av den (f.eks. Multiset relasjonsalgebra med sortering, aggregering og treverdige predikater, dvs. NULLer som i tilfelle av SQL ). De ekvivalens Reglene for relasjons algebra utnyttes, med andre ord, forskjellige spørrestrukturer kan og orde matematisk vist seg å gi det samme resultat. For eksempel kan filtrering på felt A og B, eller kryssforbindelse R og S gjøres i hvilken som helst rekkefølge, men det kan være en ytelsesforskjell. Flere operasjoner kan kombineres, og driftsordrer kan endres.

Resultatet av omskriving av spørringer er kanskje ikke på samme abstraksjonsnivå eller applikasjonsprogrammeringsgrensesnitt (API) som det opprinnelige settet med søk (selv om det ofte er det). For eksempel kan inngangsspørringene være i relasjonsalgebra eller SQL, og de omskrevne spørringene kan være nærmere den fysiske representasjonen av dataene, f.eks. Matriseoperasjoner. Omskriving av forespørsler kan også innebære materialisering av visninger og andre undersøkelser; operasjoner som kanskje er tilgjengelige for API -brukeren. Transformasjonen av spørringen kan omskrives ved å lage indekser som optimeringsprogrammet kan velge fra (noen databasesystemer lager sine egne indekser hvis de anses nyttige), pålegger bruk av spesifikke indekser, oppretter materialiserte og/eller denormaliserte visninger, eller hjelper et databasesystem med å samle statistikk over data- og søkebruken, ettersom optimaliteten avhenger av mønstre i data og typisk spørringsbruk.

Omskriving av forespørsler kan være regelbasert eller optimaliseringsbasert. Noen kilder diskuterer omskriving av søk som et tydelig trinn før optimalisering, og opererer på nivå med brukervennlig algebra -API (f.eks. SQL).

Det er andre, stort sett ikke -relaterte konsepter, som også heter på samme måte, for eksempel omskriving av søk fra søkemotorer .

Se også

Referanser

  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; Han, Ben; Risch, Tore; Tata, Sandeep; Patel, Jignesh M .; Lacroix, Zoé; Bouganim, Luc; Pitoura, Evaggelia; Neumann, Thomas; Tan, Kian-Lee; et al. (2009). "Søk omskriving". Encyclopedia of Database Systems . s. 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 . Hentet 2020-04-06 .
  3. ^ Williams, Hugh E. (2012-03-20). "Søk omskriving i søkemotorer" . Hugh E. Williams . Hentet 2020-04-06 .