クエリ最適化

クエリ最適化(クエリさいてきか、: query optimization)は、多くのデータベース管理システム (DBMS) の持つ機能であり、クエリ(データに対する問い合わせ)を実行する最も効率的な方法を決定する。クエリオプティマイザ (query optimizer) とも言う。クエリオプティマイザは、入力されたクエリについて考えられるクエリ実行計画群を評価し、どれが最も効率的か決定する。コストに基づいたクエリオプティマイザでは、個々の計画のコストを見積もり、最もコストの低い計画を選ぶ。コストはクエリ実行時コストであり、入出力(I/O)操作数、CPU時間、その他から決定する。評価されるクエリ実行計画群は、可能なアクセス経路(例えば、インデックス検索、シーケンシャル検索)と結合アルゴリズム(例えば、ソートマージ結合ハッシュ結合、入れ子ループ)の組み合わせから生成される。探索空間は入力されたSQLクエリによっては非常に大きくなる可能性もある。

クエリ最適化をユーザーが直接操作することはできない。クエリがデータベースサーバ (DBMS) に対して発行され、パーサーが構文解析すると、その結果がクエリオプティマイザに送られ、クエリ最適化が行われる。

関係代数 (関係モデル)#問い合わせ最適化も参照。

実装

クエリ最適化では、クエリ実行計画を「計画ノード」による木構造で表現することが多い。計画ノードにはクエリ実行に必要な1つの操作が格納されている。そのようなノードを木構造に配置すると、木の底から頂点に向かって中間結果が上がってくると見ることができる。各ノードには0個以上の子ノードがあり、それら子ノードの出力が親ノードの入力として使用される。例えば、結合ノードには2個の子ノードがあり、それぞれが結合の2つのオペランド (演算対象) となっている。一方、ソートノードの子ノードは1つである(ソートすべきオペランド)。葉の部分のノードはディスクを検索した結果を生み出し、例えばインデックス検索やシーケンシャル検索を行う。

結合の順序

あるクエリ実行計画の性能は関係 (表)結合する順序に大きく依存する。例えば、3つの表A(10行)、B(1,000,000行)、C(1,000,000行)を結合する場合、BとCを先に結合する計画の方がAとCを先に結合する計画よりも遥かに時間がかかる。多くのクエリ最適化では、自然結合 (join) の順序を動的計画法アルゴリズムで決定する。これはIBMSystem Rプロジェクトで採用された方法である。このアルゴリズムは次のように2段階で動作する:

  1. まず、クエリ内の全ての関係にアクセスする全ての方法を求める。クエリ内の各関係はシーケンシャル検索でアクセスできる。ある関係のインデックスがクエリ内の述語の回答として使える場合、インデックス検索も使用可能である。各関係について、オプティマイザは関係を検索する最も安価な方法を記録し、同時に特定のソートされた順のレコード群を生成する関係検索の最も安価な方法も記録する。
  2. 次にオプティマイザは関係間の結合条件を調べる。それぞれの関係のペアについて、オプティマイザはそのDBMSに実装された使用可能な結合アルゴリズムを調べる。そしてそれぞれの関係のペアを結合する最も安価な方法を保持すると同時に、特定のソートされた順の出力を生成する結合方法も保持する。
  3. そして、上で求められた2つの関係の結合フェーズの結果と3つめの関係も含めたクエリ実行計画のコストを計算する。

このようにして、クエリ実行計画は最終的にその関係についての全てのクエリの結合を生成する。注意すべき点として、このアルゴリズムでは interesting order と呼ばれるソートされた結果を生成するクエリ実行計画も保持しているのである。動的計画法では、あるクエリ実行計画と別のクエリ実行計画が同じコストならソート順がよい方を選ぶ。 これは2つの理由により行われる。まず、特定のソート順ではクエリ処理の後の方で余分なソートをする必要がなくなる。そして、うまくソートされた結果は、データがかたまっているため、その後の結合が高速化される可能性がある。

歴史的には、System Rのクエリ最適化はleft-deepクエリ実行計画のみを考慮していた(左側から順に実行するものとする方式)。すなわち、2つの関係 (表) の結合をまず行って、その結果と別の関係 (表) を結合していく。このヒューリスティックは考慮すべき計画数を減らすが(n! から 4^n)、最適なクエリ実行計画を見逃す可能性がある。このヒューリスティックは入れ子ループなどの結合アルゴリズムでは、一度には外の関係の1つのタプル(別名「行」)のみを必要とするという観測結果から出てきたものである。従ってleft-deepクエリ実行計画では常にメモリ上に保持すべきタプル数が少なくて済み、外側の関係との結合計画は1つのタプルが生成されるまで行えばよく、その後内側の関係を検索する(これを「パイプライン」と呼ぶ)。

その後、クエリ最適化は、結合演算子の両方のオペランドが別の結合の中間結果であるような複雑なクエリ実行計画にも拡張された。そのような計画は並列コンピュータでは分割して並行に計算できるので、特に重要となってきた。

入れ子型SQLクエリのクエリ実行計画

最近の関係データベース管理システム (RDBMS) のデータベース言語SQLによるクエリは、関係代数における単なる制限結合以上のことを行う。特に SQLクエリは、「GROUP BY」や「EXISTS」や「NOT EXISTS」を使った SELECT-PROJECT-JOIN ブロックの入れ子となっていることが多い。場合によってはそのような入れ子型SQLクエリを平坦化して1つの SELECT-PROJECT-JOIN クエリにすることもできるが、常に可能というわけではない。入れ子型SQLクエリのクエリ実行計画にも従来の動的計画法を使うこともできるが、そうするとクエリ最適化にかかる時間はどんどん大きくなってくる。そこでいくつかのDBMSではクエリのグラフモデルを使ったルールベースの手法を採用している。

コスト見積もり

クエリ最適化の最も困難な問題は、複数のクエリ実行計画のコストを正確に見積もることである。オプティマイザはクエリ実行コストの数学的モデルを使ってクエリ実行計画を見積もる。この数学的モデルはクエリ計画の結果の濃度(cardinality)すなわち組 (タプル) の数 (行数) に強く依存している。そしてそれはさらにクエリ内の述語の選択結果の見積もりに依存している。従来から、データベースシステムはヒストグラムなどを使って各属性(列、カラム)の値の分布をかなり詳しく統計を取っており、それによって述語の選択結果を見積もる。この技法は個々の述語の選択結果の見積もりについてはうまく機能する。しかし多くのクエリは述語の論理積を使っており、例えば select count(*) from R, S where R.make='Honda' and R.model='Accord' などとなっている。クエリ内の述語は相互に関連が深いことが多い(例えば、model='Accord'make='Honda' の一部である)。しかし一般に論理積による選択結果を見積もることは非常に困難である。選択結果の見積もりと述語の相互関係を捉えられないという問題により、クエリオプティマイザは不適切なクエリ実行計画を選択してしまう。これは大きなデータの変更があったときなど、データベース管理者が定期的にデータベースの統計情報を更新しなければならない理由の1つでもある。

関連項目

参考文献

Read other articles:

  بونايل (بالإسبانية: Buniel)‏[1]    بونايل تقسيم إداري البلد إسبانيا  [2] التقسيم الأعلى برغش  خصائص جغرافية إحداثيات 42°18′34″N 3°49′25″W / 42.309444444444°N 3.8236111111111°W / 42.309444444444; -3.8236111111111  [3] المساحة 13.28 كيلومتر مربع  الارتفاع 837 متر  السكان الت�...

هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسين هذه المقالة بإضافة وصلات إلى المقالات المتعلقة بها الموجودة في النص الحالي. (فبراير 2023) هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة...

Округ Понтуаз фр. Pontoise[1]фр. arrondissement de Pontoise[1] Адм. центр Понтуаз Країна  Франція Регіон Іль-де-Франс Департамент Валь-д'Уаз Межує з: сусідні адмінодиниці Сарсель, Аржантей, Сен-Жермен-ан-Ле, Мант-ла-Жолі, Лез-Анделі, Бове, Санліс ? Населення  - повне...

Tratado de Breslau Ayuntamiento de BreslauSellado 11 de junio de 1742En vigor 28 de julio de 1742Condición Tratado de BerlínFirmantes Austria Prusia[editar datos en Wikidata] El Tratado de Breslavia (o Tratado de Breslau), suscrito entre el Sacro Imperio Romano Germánico y Prusia en 1742, dispuso que María Teresa I entregaría el territorio de Silesia exigido por Prusia.[1]​ El tratado se firmó en el marco de la Guerra de sucesión austriaca, en la que Federico II el Gran...

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Maret 2023. LelaAsal Melaka, Malaysia Kudus Jawa IndonesiaGenrerockPekerjaanVokal / PemusikTahun aktif1990-anAnggotaDin - Gitar Utama Ali - Vokal/BassMantan anggotaRifkee Benafe - Vokal Aawie -Vokal Nik Putra - Vokal Man - Dram Zaharin - Dram Lela merupakan sebuah g...

Bus that combines internal combustion and electric propulsion systems This article deals with hybrid combustion / battery hybrid buses. For alternately powered buses, see dual-mode bus; for fuel cell hybrids see fuel cell bus; for all-electric buses, see electric bus. See also: Hybrid electric vehicle A Hino Blue Ribbon City hybrid Diesel-electric bus A hybrid electric bus is a bus that combines a conventional internal combustion engine propulsion system with an electric propulsion system. Th...

American football coach (1901–1979) Joe MetcalfBiographical detailsBorn(1901-08-11)August 11, 1901Harmon County, Oklahoma, U.S.DiedSeptember 7, 1979(1979-09-07) (aged 78)Harmon County, Oklahoma, U.S.Alma materSouthwestern Oklahoma State UniversityCoaching career (HC unless noted)1952–1957Southwestern Oklahoma State Head coaching recordOverall32–21–2 Joe Bailey Metcalf (Oklahoma, August 11, 1901 – Oklahoma, September 7, 1979) was an American football coach who served as hea...

Relations entre le Tibet et la Mongolie ? ? modifier  Les relations entre la Mongolie et le Tibet commencent probablement chez les proto-mongols, avec les premières traces d'art des steppes au Tibet datant de l'ère du karassouk, à Thalpan dans la région de l'Indus, dans les régions du Ladakh et du Zanskar dans les 2e et 1er millénaire avant notre ère ayant de très grosses ressemblance avec l'art animalier des steppes, mais il semble que certains autres pétroglyphes soient p...

2007 single by SlimmyBeatsound LoverboySingle by Slimmyfrom the album Beatsound Loverboy Released6 September 2007Recorded2006GenreElectronica, alternativeLength3:03LabelSom LivreSongwriter(s)Paulo FernandesProducer(s)Quico Serrano and Mark J TurnerSlimmy singles chronology Beatsound Loverboy (2007) Show Girl (2008) Beatsound Loverboy is a song by Slimmy, released in 2007 as the lead single from his debut album Beatsound Loverboy. The song peaked at number 42 in the Portugal Singles Chart. The...

2005 Indian filmIqbalTheatrical release posterDirected byNagesh KukunoorWritten byNagesh KukunoorMir Ali Hussain (dialogues)Screenplay byNagesh KukunoorStory byNagesh KukunoorProduced bySubhash GhaiStarringNaseeruddin ShahShreyas TalpadeGirish KarnadYatin KaryekarPrateeksha LonkarShweta Basu PrasadCinematographySudeep ChatterjeeEdited bySanjib DattaMusic bySongs:Himesh ReshammiyaSalim-SulaimanSukhwinder SinghOm The Fusion BandKedar-SaroshBackground Score:Salim-SulaimanDistributed byMukta Sear...

American baseball player Baseball player Mike AndersonAnderson in 1972OutfielderBorn: (1951-06-22) June 22, 1951 (age 72)Florence, South Carolina, U.S.Batted: RightThrew: RightMLB debutSeptember 2, 1971, for the Philadelphia PhilliesLast MLB appearanceSeptember 30, 1979, for the Philadelphia PhilliesMLB statisticsBatting average.246Home runs28Runs batted in134 Teams Philadelphia Phillies (1971–1975) St. Louis Cardinals (1976–1977) Baltimore Orioles (1978...

Award ceremony for films of 1953 26th Academy AwardsDateMarch 25, 1954SiteRKO Pantages TheatreHollywood, California NBC Center TheatreNew York City, New YorkHosted byDonald O'Connor (Hollywood)Fredric March (New York City)HighlightsBest PictureFrom Here to EternityMost awardsFrom Here to Eternity (8)Most nominationsFrom Here to Eternity (13)TV in the United StatesNetworkNBC ← 25th Academy Awards 27th → The 26th Academy Awards were held on March 25, 1954, simultaneously a...

Rugby league season 2023 Super League XXVIIILeagueSuper LeagueDuration27 roundsTeams12Matches played167Points scored6,464Highest attendance24,275Wigan Warriors Vs St Helens (7 April)Lowest attendance3,348 Wakefield Trinity Vs Catalans Dragons (8 September)Average attendance9,256Attendance1,545,894Broadcast partnersSky SportsChannel 4BBC Sport (highlights)Fox LeagueFox Soccer PlusSport KlubbeIN Sports 2023 seasonChampionsWigan Warriors 6th Super League title 23rd British titleLeague Leaders Sh...

Natalia Cordova-Buckley Información personalNombre de nacimiento Natalia CórdovaNacimiento 25 de noviembre de 1982(41 años) Ciudad de México, MéxicoNacionalidad MexicanaInformación profesionalOcupación ActrizAños activa desde 2008Sitio web Twitter[editar datos en Wikidata] Natalia Cordova-Buckley (25 de noviembre de 1982) es una actriz mexicana. Es más conocida por su papel como Elena Yo-Yo Rodríguez en la serie de la ABC Agents of S.H.I.E.L.D.[1]​ Carrera Natal...

Japanese musical effects manufacturer For the company that makes automotive and marine audio equipment, see Boss Audio. This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article may be written from a fan's point of view, rather than a neutral point of view. Please clean it up to conform to a higher standard of quality, and to make it neutral in tone. (May 2018) (Learn how and when to r...

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (مارس 2016) في ألمانيا، الرمز البريدي (Postleitzahl بالألمانية وتلفظ ‎[ˈpɔstlaɪ̯tʦaːl]‏) رقم خماسي تقرره مؤسسة البريد الألم...

South African type WG tenderType WG tender on CGR 8th Class of 1901Type and originLocomotiveCGR 8th Class of 1901DesignerCape Government Railways(H.M. Beatty)BuilderSchenectady Locomotive WorksAmerican Locomotive CompanyIn service1901-1902SpecificationsConfiguration2-axle bogiesGauge3 ft 6 in (1,067 mm) Cape gaugeLength20 ft 3+1⁄2 in (6,185 mm)Wheel dia.33+1⁄2 in (851 mm) as built34 in (864 mm) retyredWheelbase14 ft 5...

Frederikshavn White Hawks Perustettu 1964 Kaupunki Frederikshavn, Tanska Kotiareena Nordjyske Bank Arena – kapasiteetti 4 000 Sarjataso Metal Ligaen Värit                Toimitusjohtaja Kasper V. Kristensen Päävalmentaja Patric Wener Infobox OKVirheellinen NIMI-arvo Frederikshavn White Hawks on tanskalainen jääkiekkoseura Frederikshavnista. Joukkue pelaa Tanskan korkeimmalla sarjatasolla Metal Ligaenissa. Sisäl...

This is the talk page for discussing improvements to the Internet protocol suite template. Put new text under old text. Click here to start a new topic. New to Wikipedia? Welcome! Learn to edit; get help. Assume good faith Be polite and avoid personal attacks Be welcoming to newcomers Seek dispute resolution if needed Archives: Index, 1Auto-archiving period: 90 days  This template does not require a rating on Wikipedia's content assessment scale.It is of interest to the following WikiProje...

Indian television series SingapennaeGenre Drama Written by Prabhas Muthaiya Dialogues: Pon Ilango Anandh Venu Screenplay byPrabhas MuthaiyaDirected byDhanush KrishnaStarring Maneesha Mahesh Darshak Gowda Amaljith Theme music composerVikram SelvaOpening themeSingapennae VaaSaindhavi (vocals)Palani Bharathi (lyrics)Country of originIndiaOriginal languageTamilNo. of seasons1No. of episodes260+ProductionProducerBalasubramaniamCinematographyRamesh KesavanEditorSevilorajaCamera setupMulti-cameraRun...