並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 26 件 / 26件

新着順 人気順

ヒント句の検索結果1 - 26 件 / 26件

  • SQLの実行計画の読み方 |

    今回は、SQLを書く上で特にパフォーマンスに影響のあるSQLの実行計画の読み方について解説します。実行計画はデータベース製品によってさまざまに差異がありますが、ここでは比較的どのデータベース製品でも共通する内容について解説します。 実行計画とは記述したSQLが実際にデータベースの内部でどのように処理されて結果を返すか、その処理方法を記述した情報です。 A5:SQL Mk-2では、SQLエディタで実行計画を見たい SQL の上にキャレットがある状態でメニューから [SQL(S)] – [SQLの実行計画(J)] または、Ctrl+E で表示できます。 表示の仕方はデータベース製品ごとに異なりますが、多くのデータベース製品ではツリー状の情報として表現されます。(このため A5:SQL Mk-2でもツリービューで実行計画を表示します。) ツリーのリーフ(端)から処理が行われ、ルート(根)に向かっ

    • SQLが重いときに見るお気軽チューニング方法

      SQLのチューニング方法 昔Qiitaで書いたものをzennにうつして、若干の修正、追加をしてみました。 ORACLEでの経験を元に書いていますがコストベースのリレーショナルデータべースなら大体共通の考え方だと思うので他にも使えると思います。 SQLのチューニングといえば比較的容易に済むインデックスをとりあえず作成する。といった対応を取られがちですが、数万レコード程度でのデータ量ではあまり効き目がなく(自分の経験則)、どちらかといえば、結合順が大幅に狂ってたりすることが原因のことが多かったりします。よって本当にインデックスがないことが原因なのか?を熟考する必要があります。(例えばID以外のフラグとかコードに単項目indexを貼ってるのもみたことがあります。怖いけど実話) また、インデックスを作りすぎるとオプティマイザが狂いやすくなって他のSQLにも悪影響を及ぼしたりするので結構熟慮して追加

        SQLが重いときに見るお気軽チューニング方法
      • インデックスを理解したい - Qiita

        はじめに みなさんはDBのインデックスを正しく使えていますか? 私はなんとなく「DBのパフォーマンスを向上するためのもの」という認識はあったのですが、 どのような場面で使うものなのか、逆にどのような場面では使うべきでないのかなど 明確に理解できていませんでした。 今回はそんなインデックスについての理解を深めたいと思います。 インデックスとは インデックスとは、その名の通り「索引」です。 表現の仕方と変えると、(x, a)という形式の配列であるとも言えます。 xというキー値とそれに結びつくaというデータ情報があり、 これを利用することですべてのデータを網羅して見ることなく、 まさに本の索引のように目的のデータにたどり着くことができます。 インデックスはSQLのパフォーマンスを改善するための非常にポピュラーな手段であり、 理由としては下記の3点が挙げられます。 アプリケーションのコードに影響を

          インデックスを理解したい - Qiita
        • 実録パフォーマンス改善 - 高速化のためアーキテクチャやアルゴリズム選択から見直すSansanの事例 - エンジニアHub|Webエンジニアのキャリアを考える!

          実録パフォーマンス改善 - 高速化のためアーキテクチャやアルゴリズム選択から見直すSansanの事例 インフラの特性をふまえ、ミドルウェアの挙動を理解し、プロファイリングによってボトルネックを把握し、要求に合ったアーキテクチャを選択する。そういった工夫を重ねることでアプリケーションのパフォーマンスを改善する事例を、Sansanの千田智己さんに聞きました。 アプリケーションの設計・実装方法を変えることで、性能が格段に向上するケースは数多くあります。有名IT企業のエンジニアは、どのような方針のもとでアーキテクチャあるいはアルゴリズム選択などでパフォーマンスを改善しているのでしょうか? 法人向けクラウド名刺管理サービス「Sansan」や個人向け名刺アプリ「Eight」を提供するSansan株式会社の千田智己さんに、これまで取り組んできた事例と、そのノウハウを教えていただきました。 千田 智己(せ

            実録パフォーマンス改善 - 高速化のためアーキテクチャやアルゴリズム選択から見直すSansanの事例 - エンジニアHub|Webエンジニアのキャリアを考える!
          • ゲーム業界のデータベース事情。大量のシャーディングで複雑化する負荷分散、メンテナンスで止めないとスケールアップ・ダウンができないなどの課題。解決方法は?[PR]

            ゲーム業界のデータベース事情。大量のシャーディングで複雑化する負荷分散、メンテナンスで止めないとスケールアップ・ダウンができないなどの課題。解決方法は?[PR] 日常的に多数の同時アクセスが発生し、大量のデータが蓄積されるオンラインゲームのバックエンドは、データベースにとってもっとも過酷な環境の1つだといえます。 このバックエンドデータベースとしてよく使われているのがMySQLデータベースです。しかしその使われ方は一般的なMySQLとは異なり、データベースを細かく分割して多数のサーバに負荷を分散するシャーディングと呼ばれる仕組みを構築するなど、複雑なシステム構築と運用が行われているのが現実です。 そこで急速に注目度を高めているのが、MySQL互換でありつつ分散データベースの機能を備え、シンプルなクラスタ構成で高い負荷に耐える、いわゆる「NewSQL」と呼ばれる分野の代表的なデータベースの1

              ゲーム業界のデータベース事情。大量のシャーディングで複雑化する負荷分散、メンテナンスで止めないとスケールアップ・ダウンができないなどの課題。解決方法は?[PR]
            • サービス無停止でRDB移行 〜 Yahoo!広告のOracleDB移行事例

              ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。Yahoo!広告 ディスプレイ広告(以下、ディスプレイ広告)エンジニアの池田です。 本記事では、ディスプレイ広告において広告主の予算に対する課金処理・配信制御に使われるRelational Database(以下、RDB)を障害を起こさずにサービス無停止で移行した事例について紹介します。無停止でのRDBの移行を検討されている方がいらっしゃったらぜひ参考にしていただければと思います。 サービスを停止できない理由 今回、私たちが運用していたOracle Database(以下、OracleDB)のハードウェアのEOLおよびソフトウェアのEOLに伴うバージョンアップ(Oracle12c→Oracle19c)などの理由により、

                サービス無停止でRDB移行 〜 Yahoo!広告のOracleDB移行事例
              • MySQLの物理削除によるパフォーマンスの悪化とその回避策について

                ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめまして、Yahoo!ショッピングでシステム開発を担当している村上です。 Yahoo!ショッピングでは数億件にのぼる商品が日々更新されています。 今回はそれを支える巨大なDBの運用の中で遭遇したMySQLのアンチパターンと、回避した方法について紹介いたします。 特定のテーブルをJoinするとすごく遅くなる Yahoo!ショッピングでは商品を出品するためのツールがあります。 商品情報には「商品名」「価格」といった、任意で設定可能な項目のほか、「ブランド」「商品種別」など、製品ごとに入力する内容が決まっている項目を、マスター情報としてテーブルで管理しています。 このマスター情報を利用して、出品の際に入力情報が正確であるかどうか確か

                  MySQLの物理削除によるパフォーマンスの悪化とその回避策について
                • SQL等価性検証ツールCosetteを使ってみた - Qiita

                  はじめに 皆さん、SQLチューニングしてますか?(唐突) 私は仕事柄RDBMSのSQLチューニングをすることが多いのですが、たまにチューニングの一環で SQL文の書き換え をすることがあります。 その際に問題になるのが、書き換えたSQL文が等価であるかどうかの確認が大変なことです。 SQL文を書き換えた場合には、想定通りの結果を取得できるか確認するために、テストをやり直す必要があります。 これが開発早期のフェーズならまだましなのですが、結合テスト以降だと手戻りも多くかなりコストがかかりますし、既に本番運用が始まったシステムともなると、テスト自体が困難なこともあります。 また、複雑なSQL文だと網羅的なテストケースを作成すること自体が困難であるため、完全に正しいと確信することはできません。 なので、SQL文の書き換えの正しさを証明する良い手段はないかと考えていました。 SQLチューニングとは

                    SQL等価性検証ツールCosetteを使ってみた - Qiita
                  • 時代に即したMySQレの新機能:PLEASE句 - sakaikの日々雑感~(T)編

                    最近は、会社などの組織において仕事の指示をする場合に、単に上司が命令をするだけでは組織は動かないと言われています。部下に仕事をしてもらうには--そう、まさにこの「してもらう」の気持ちこそが本質なのですが--「命令」ではなく「依頼」の形を取ることで、お互いに気持ちよく仕事をすることができ、より良いチームとなるのです。 この世の中の流れは近年、ソフトウェアの世界にも強く適用されるようになってきました。ソフトウェアに於いても、常に、より中立的な立場での対応が求められてきています。 MySQレも例外ではなく、最近の修正ではレプリケーションの master-slave を source-replica と呼ぶように変更したり、blacklist を blocklist に変更したりなどの話題を目にした方も多いと思います。 これら一連のポリティカリーにコレクトな対応に今回新たに加わったのが、冒頭で紹介

                      時代に即したMySQレの新機能:PLEASE句 - sakaikの日々雑感~(T)編
                    • 【レポート】Amazon RDS におけるパフォーマンス最適化とパフォーマンス管理 #AWSSummit | DevelopersIO

                      こんにちは、崔です。 AWS Summit Tokyo 2019 3日目のB3-04のセッションである「Amazon RDS におけるパフォーマンス最適化とパフォーマンス管理」のレポートをお届けします。 DBのパフォーマンスを最適化する上でDBのパフォーマンスメトリクスを収集し定期的に分析することが重要になります。Amazon RDSでは、Performance Insightsを利用することでメトリクスの収集、蓄積を自動化し、パフォーマンス問題発生時点の問題解析を迅速に行うことができるようになります。パフォーマンス問題の解析のためにPerformance Insightsが取得するメトリクス”Database Load”の意味を理解するとともに、Performance Insightsを使ったパフォーマンス分析のケーススタディを説明します。また、クエリーパフォーマンスの管理という観点

                        【レポート】Amazon RDS におけるパフォーマンス最適化とパフォーマンス管理 #AWSSummit | DevelopersIO
                      • MySQL 8.0.20 でHASH JOINが効くケースが拡大した - mita2 database life

                        TLDR; MySQL 8.0.20 から INNER JOIN だけじゃなくて、Semi joinや Left/Right outer join でも HASH JOIN が使えるようになったよ MySQL 8.0.20 では (EXPLAIN ANALYZEではなく)EXPLAIN でも、HASH JOINが使われているか、表示されるようになったよ MySQL 8.0.19 から、optimizer_switch で HASH JOIN の OFF/ON がコントロールできなくなったよ MySQL 8.0.20 Release Note Hash joins are now used any time a nested block loop would be employed. This means that hash joins can be used for the followi

                          MySQL 8.0.20 でHASH JOINが効くケースが拡大した - mita2 database life
                        • Oracleチューニングの裏技!標準機能だけでパーティションテーブルを作る方法 | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]

                          株式会社ラクーンホールディングスのエンジニア/デザイナーから技術情報をはじめ、世の中のためになることや社内のことなどを発信してます。 パフォーマンスOracleデータベースDB設計インデックス こんにちは羽山です。 今回はOracleデータベースの標準機能だけでテーブルのパーティション化とそれに伴うパフォーマンス改善を実現する方法を紹介します。 本来Oracleでテーブルのパーティション化をするためには対応するエディションと追加オプションが必要なので活用できる環境にいる方は多くはなさそうですが、パーティション化自体のメリットは大規模DBだけでなく、中・小規模のDBでもパフォーマンスチューニングの手段として有用です。 今回のテクニックはそのパーティションテーブルのおいしい部分を再現できるので、今までパーティションテーブルに関心を持ったことがない方にこそ、是非参考にしていただけたらと思っていま

                            Oracleチューニングの裏技!標準機能だけでパーティションテーブルを作る方法 | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
                          • 第110回 Invisible Indexesを使って気軽にチューニングを始めてみる | gihyo.jp

                            使用されず役に立たないインデックスを定義するのは、SQLアンチパターンの1つ「インデックスショットガン」として知られています。使用されていないインデックスを定義するのは、ディスク容量を圧迫して、さらに更新コストも掛かるという良いこと無しな状態です。 ただ実際には、あなたが使用されていないインデックスを見つけたとしても、安易にドロップするのは非常に危険です。ドロップするのは時間がかかりませんが、インデックスを再構築するまでには時間がかかります。 もしも万が一そのインデックスが使用されているクエリが存在するとしたら、その時点から障害につながってしまう可能性があります。ドロップはしたくないけど、使わないようにして影響を確認したい……、今回はそんな時に便利なMySQL 8.0の新機能「Invisible Indexes」を使ってインデックスを外した時の影響を調べてみましょう。 検証環境 今回はDo

                              第110回 Invisible Indexesを使って気軽にチューニングを始めてみる | gihyo.jp
                            • 主なRDB(Oracle, MySQL, PostgreSQL)の機能比較 - Qiita

                              全国で利用されているDBの分布は以下のようになっているらしいです。 この中でも特に、Oracle, MySQL, PostgreSQLに焦点をあててそれぞれの機能を簡単に比較したので、それをまとめました。 Oracleの主な特徴 Oracle社が開発・販売する商用RDBMS 行レベルロック 複数のユーザーが同一の表の別の行に同時にアクセスするのでパフォーマンスが高い 読み取り一貫性 ダーティ・リード(更新前の情報と更新後の情報の両方を取得)が発生しないように、更新前データのみを取得する 堅牢性 Oracle Data Guardと呼ばれる、災害時やデータ破損時などあらゆる障害からデータベースを保護し、サービスの継続を可能にするシステムが存在している 移植性 Oracle Databaseは全てC言語で書かれいているので、幅広い運用が可能 管理や開発の効率化のための様々なツールが利用できる

                                主なRDB(Oracle, MySQL, PostgreSQL)の機能比較 - Qiita
                              • 第112回 知っておくと便利になるかもしれない小技 | gihyo.jp

                                今回はMySQLを利用するうえで、知っていると便利になるかもしれないちょっとした小技をいくつか紹介しようと思います。なお、利用するMySQLのバージョンは8.0.18、OSはCentOS 7を利用しています。 STRAIGHT_JOINの位置 第97回 JOIN_ORDERを使ってJOINの順番を決めるにて、バージョン8.0以降ではJOIN_ORDERヒント句を用いてJOINの順番を決めるやり方と、バージョン5.7とそれ以前ではINNER JOINに限り、STRAIGHT_JOINを用いて駆動表を選択することができることを紹介しました。 みなさんはこのSTRAIGHT_JOINを記述するやり方が複数あるのはご存知でしょうか? 1つ目の記述は、INNER JOINの記述をSTRAIGHT_JOINに書き直すやり方です。たとえば、第97回で利用した下記クエリを参考にしてみましょう。 mysql

                                  第112回 知っておくと便利になるかもしれない小技 | gihyo.jp
                                • LINEの内製データ分析基盤「OASIS」におけるSpark SQLのパフォーマンス改善

                                  2019年3月19日、Data Engineering Meetupが主催するイベント「Data Engineering Meetup #1」が開催されました。データの収集や管理、処理、可視化など、データエンジニアリングに関する技術の情報を共有する本イベント。データエンジニアリングの最前線で活躍するエンジニアたちが集い、自身の知見を共有します。プレゼンテーション「Improving Spark SQL Performance」に登壇したのは、LINE株式会社Data Platform室の吉田啓二氏。講演資料はこちら Improving Spark SQL Performance 吉田啓二氏:LINEの吉田と申します。よろしくお願いします。 LINEでは「OASIS」という内製のBIダッシュボードツールを独自で開発して運用しています。LINEの各社員は、こちらのツール上でSpark SQLの

                                    LINEの内製データ分析基盤「OASIS」におけるSpark SQLのパフォーマンス改善
                                  • 第58回 OSS-DB入門セミナー開催、MySQL 25周年、PostgreSQL 13ベータ版登場 | gihyo.jp

                                    OSSデータベース取り取り時報 第58回OSS-DB入門セミナー開催、MySQL 25周年、PostgreSQL 13ベータ版登場 この連載では、OSSコンソーシアム データベース部会のメンバーが、さまざまなオープンソースデータベースの毎月の出来事をお伝えしています。 OSC Online/Nagoyaで「二大OSS-DB&アプリ開発“超”入門」セミナー オープンソースカンファレンス(OSC)名古屋は会場での通常開催からオンラインに切り替わり、5月30日の開催となりました。当然ですがオンラインですから地理的な制約がありません。セミナーは5または6トラックが並ぶ充実のラインナップとなりました。 データベース部会では、オープンソースビジネス推進協議会(OBCI)と共同で企画セミナーを実施します。「⁠OSSデータベース入門セット ~二大OSS-DB & アプリ開発“⁠超⁠”入門」という2枠連続セ

                                      第58回 OSS-DB入門セミナー開催、MySQL 25周年、PostgreSQL 13ベータ版登場 | gihyo.jp
                                    • Active Recordでのヒント句の書き方 - koicの日記

                                      Active Recordでのヒント句の書き方について。 クエリの実行計画の最適化を RDBMS のオプティマイザ (プランナ) に任せずに、アプリケーション側で指定するのにヒント句というのがあります。通常 RDBMS のオプティマイザに任せたりしていますが、DBA からチューニングのアドバイスがあったりしたときに使ったりできます。 Oracle、MySQL 5.7.7 以上 (MariaDB 除く) 、PostgreSQL だと pg_hint_plan が使えるものあたりがサポートしているようです。ヒント句は既存のクエリ自体は書き換えることなく、コードコメントで指示を出せるのが売りのようです。 SELECT /*+ MAX_EXECUTION_TIME(50000) NO_INDEX_MERGE(topics) */ `topics`.* FROM `topics` Active Re

                                        Active Recordでのヒント句の書き方 - koicの日記
                                      • あの日見た障害の原因を僕達はまだ知らない。

                                        はじめに こんにちは!現実逃避で手間のかかる料理を作る @come25136 です!! 最近手がけたサービスで色々やらかしまして、今回はそれらを何個かピックアップしてご紹介します。 この記事では、なぜそのような事が起こったのか、そしてどのように対処したのかをお話しします。 一応補足 詳しく話書いている部分がありますが、これらは私が開発しているサービスであり全ての権利が私にあるので、しょっぴかれる心配はありません。 サービスについて norumes Cloudという交通系APIを作っています このサービスはNest.js, Redis, PostgreSQLで作られていて、停留所検索や時刻表生成(OD検索)などを提供しています。 活用事例 熊本市内バス会社5社による時刻表作成サービス"My バス時刻表 in 熊本"に採用され、バスセンターや一般ユーザー宅など、幅広い場所から使用されています。

                                          あの日見た障害の原因を僕達はまだ知らない。
                                        • 第103回 MySQL 8.0のセミジョインの変更点 | gihyo.jp

                                          MySQL 8.0からサブクエリに対して最適化する機能のセミジョインが強化されました。 MySQL 5.6とそれ以降からセミジョインは追加され、サブクエリを高速で処理できるようになりました。さらに、MySQL 8.0でその機能が進化しています。今回の記事を読む前に、まず以前の記事の 第43回 MySQLの準結合(セミジョイン)についてからセミジョインの概要や戦略についてご確認ください。 今回は、強化されたMySQL8.0のセミジョインの変更点について、紹介したいと思います。 セミジョインの変更点 MySQL 8.0とそれ以前では、セミジョインを動作させるためには以下のような条件がありました。 INまたは=ANYを使用したサブクエリであること よって、EXISTS句を使用したクエリにセミジョインを動作させるために、IN句を使用したクエリに書き換える必要がありました。しかし、MySQL8.0.

                                            第103回 MySQL 8.0のセミジョインの変更点 | gihyo.jp
                                          • Testcontainersを利用してIntegrationTestを改善する - ZOZO TECH BLOG

                                            はじめに こんにちは、マイグレーションチームの寺嶋です。 本記事では、ZOZOTOWNのマイクロサービスにおけるデータベースを参照したユニットテストの改善で得られた知見や工夫について紹介します。 背景と課題 ZOZOTOWNでは、数年前からリプレイスプロジェクトが実施されており、いくつものマイクロサービスが誕生しました。初期にJavaで作られたマイクロサービスのユニットテストが開発環境のデータベースを参照しており、テストで利用しているデータが更新・削除されてしまうとテストに失敗してしまうことが度々起きていました。また、接続しているデータベースがオンプレのSQL Serverを利用しており、CI上でユニットテストを実施できない状況でした。 そのため対象のユニットテストは次の問題を抱えていました。 ローカルPC上でしか実行できない 実データを利用しているので今日通ったテストが明日落ちる(可能性

                                              Testcontainersを利用してIntegrationTestを改善する - ZOZO TECH BLOG
                                            • ツールを使った Cloud Spanner のウォームアップ

                                              tl;dr Cloud Spanner で gcsb という負荷試験ツールを使ってウォームアップを行う方法と、それに関連するいくつかの Tips を紹介します。 はじめに この記事は「Cloud Spanner のウォームアップ ツールとベンチマーク ツールでアプリケーションのリリースを簡単に」の内容を踏襲しています。こちらの記事の内容に対して、いくつか補足説明を行ったものとなります。 Cloud Spanner におけるウォームアップとは何か Cloud Spanner は自動シャーディングにより、テーブルを内部で分割することでノード数に応じてスケールアウトする仕組みがあります。分割されたデータはスプリットと呼ばれる単位で管理されます。スプリットの分割は「負荷」と「サイズ」のいずれかの条件で行われます。テーブルを複数のスプリットの分割する処理は自動的に実行されるため、スプリットの分割がい

                                                ツールを使った Cloud Spanner のウォームアップ
                                              • 第51回 「企業ITシステムのモダナイゼーションとデータベース最新状況」報告、MySQL 8.0.18リリース、PostgreSQL 12リリース | gihyo.jp

                                                OSSデータベース取り取り時報 第51回「企業ITシステムのモダナイゼーションとデータベース最新状況」報告、MySQL 8.0.18リリース、PostgreSQL 12リリース この連載では、OSSコンソーシアム データベース部会のメンバーが、さまざまなオープンソースデータベースの毎月の出来事をお伝えしています。今回、OSC.Enterpriseでの特別セミナーの報告をします。また、MySQL 8.0.18がリリースされ、PostgreSQLはメジャーバージョン12が正式にリリースしました。 OSC 2019 .Enterpriseでの特別セミナーの報告(発表資料公開あり) 前回お知らせのとおり、私たちOSSコンソーシアムは、10月10日(木)に東京の渋谷で開催されたオープンソースカンファレンス(OSC)2019.Enterpriseに出展しました。今回は、オープンCOBOLソリューション

                                                  第51回 「企業ITシステムのモダナイゼーションとデータベース最新状況」報告、MySQL 8.0.18リリース、PostgreSQL 12リリース | gihyo.jp
                                                • 【レポート】実践!Average Active SessionsとQuery Plan Managementを駆使したAurora PostgreSQLチューニングテクニック #AWSSummit | DevelopersIO

                                                  DA事業本部の春田です。 AWS Summit Online絶賛開催中!ということで、本記事では「Architecting and Building - 突然データベースのパフォーマンスが悪化、あなたならどうする?【後半】」の内容についてまとめていきます。 前半の内容はこちらです。 セッション情報 アマゾン ウェブ サービス ジャパン株式会社 技術統括本部 ソリューションアーキテクト 新久保 浩二 前半で確認したチューニングのサイクルを元に Performance Insights を使って、実際に蓄積した過去データからボトルネックの分析の流れや、突然のパフォーマンストラブルに向けたリアルタイムでの性能状況の確認、ボトルネック分析の流れを見ていきます。また、SQL の実行計画を柔軟に制御、管理ができる Amazon Aurora PostgreSQL の Query Performance

                                                    【レポート】実践!Average Active SessionsとQuery Plan Managementを駆使したAurora PostgreSQLチューニングテクニック #AWSSummit | DevelopersIO
                                                  • 第135回 MySQL 8.0で追加されたoptimizer_switchのフラグについて | gihyo.jp

                                                    今回は、MySQL 8.0で追加されたoptimizer_switchの新しいフラグについて紹介したいと思います。MySQLのバージョンは、2020年11月現在で最新のMySQL 8.0.22を使用します。 はじめに optimizer_switchとは、オプティマイザーの動作を制御するためのシステム変数です。 mysql> SELECT @@optimizer_switch\G *************************** 1. row *************************** @@optimizer_switch: index_merge=on,index_merge_union=on, index_merge_sort_union=on,index_merge_intersection=on, engine_condition_pushdown=on,inde

                                                      第135回 MySQL 8.0で追加されたoptimizer_switchのフラグについて | gihyo.jp
                                                    • pg_hint_planで実行計画を制御する|PostgreSQLインサイド

                                                      pg_hint_planでヒント句を設定して実行計画を制御するチューニング方法について解説します。 1. 実行計画を制御する PostgreSQLでは、プランナ(オプティマイザ)が入力されたSQL文をもとに統計情報を参照して、最も速くてコストの低いと予想される方法を選択し、実行計画を作成します。しかし、必ずしもプランナ(オプティマイザ)が最適な実行計画を作成するとは限りません。例えば、大量の更新クエリなどで統計情報の最新化が間に合わない場合や、刻々と統計情報が変化する場合に、プランナ(オプティマイザ)が作成する実行計画が不安定になることがあります。基幹系の業務システムでは、性能の向上よりも性能の安定化の方が重要であり、実行計画の変化を避けたい場合もあります。 その対策として、クエリにヒント句を設定してテーブルスキャン方法や結合方法などのアクセス方法を明示的に指示することで、プランナ(オプテ

                                                        pg_hint_planで実行計画を制御する|PostgreSQLインサイド
                                                      1