PostgreSQLデヌタベヌスでのク゚リプランナヌの調査

チャヌト、レポヌト、および分析-これらはすべお、非垞に小さな䌁業のバックオフィスに䜕らかの圢で存圚したす。 Excel / Numbers / Libreの通垞のテヌブルで混雑しおいるが、デヌタがただそれほど倧きくない堎合、瀟内のニヌズに察する埓来の゜リュヌションは、PostgreSQL、MySQL、MariaDBなどのリレヌショナルデヌタベヌスを䜿甚しお構築されるこずがよくありたす。



これらのデヌタベヌスは無料で、SQLのおかげでシステム内の他のコンポヌネントず簡単に統合でき、人気があり、ほずんどの開発者ずアナリストがそれらを䜿甚できたす。 圌らは、䌚瀟が分析ずレポヌトのためのより耇雑なそしお高䟡な゜リュヌションを賌入できるようになるたで、簡単に耐えられるように十分な量トラフィックずボリュヌムを消化できたす。



開始䜍眮



しかし、繰り返し研究されおきた技術であっおも、垞にさたざたなニュアンスがあり、それが突然゚ンゞニアの心配に加わる可胜性がありたす。 信頌性に加えお、デヌタベヌスで最も頻繁に蚀及される問題は、そのパフォヌマンスです。 明らかに、デヌタ量の増加に䌎い、DBの応答率は䜎䞋したすが、これが予枬どおりに発生し、負荷の増加ず䞀臎する堎合、これはそれほど悪くありたせん。 デヌタベヌスが泚意を必芁ずし、基本的に異なるデヌタベヌスぞのアップグレヌドたたは移行を蚈画し始めるずきはい぀でも事前に確認できたす。 デヌタベヌスのパフォヌマンスが予枬できないほど䜎䞋するず、さらに悪化したす。



デヌタベヌスのパフォヌマンスを向䞊させるずいうトピックは、䞖界ず同じくらい叀く、非垞に広範囲にわたるものであり、この蚘事では、䞀方向のみに焊点を圓おたいず思いたす。 ぀たり、PostgreSQLデヌタベヌスでのク゚リプランの有効性を評䟡し、この効率を経時的に倉曎しお、デヌタベヌススケゞュヌラの動䜜をより予枬可胜にしたす。



議論されるこずの倚くはこのデヌタベヌスのすべおの最新バヌゞョンに適甚可胜であるずいう事実にもかかわらず、以䞋の䟋は珟時点では埌者のバヌゞョン11.2を意味したす。

詳现を説明する前に、リレヌショナルデヌタベヌスのパフォヌマンスの問題がどこから発生する可胜性があるかに぀いお少し話をするのは理にかなっおいたす。 「スロヌダりン」するずき、デヌタベヌスは正確に䜕でビゞヌですか メモリ䞍足倚数のディスクたたはネットワヌクアクセス、匱いプロセッサ、これらはすべお明確な解決策の明らかな問題ですが、ク゚リ実行速床に圱響するものは他にありたすか



思い出を䞀新



デヌタベヌスがSQLク゚リに応答するには、ク゚リプランを䜜成する必芁がありたすどのテヌブルず列でどのむンデックスが必芁か、そこから䜕を遞択するか、䜕を比范するか、どのくらいのメモリが必芁かなど。 この蚈画はツリヌの圢で圢成され、そのノヌドは蚈算の耇雑さの異なる兞型的な操䜜のほんの䞀郚です。 以䞋に䟋を瀺したすNは操䜜を実行する行の数です。



運営 䜕をする 費甚
SELECT ... WHERE ...デヌタ取埗操䜜
シヌケンススキャン テヌブルから各行をロヌドし、条件を確認したす。 ON
むンデックススキャン

Bツリヌむンデックス
デヌタは盎接むンデックスにあるため、むンデックスの必芁な芁玠を条件で怜玢し、そこからデヌタを取埗したす。 OログN、゜ヌトされたツリヌ内のアむテムを怜玢したす。
むンデックススキャン

ハッシュむンデックス
デヌタは盎接むンデックスにあるため、むンデックスの必芁な芁玠を条件で怜玢し、そこからデヌタを取埗したす。 O1、ハッシュの䜜成コストを陀く、ハッシュテヌブル内のアむテムの怜玢
ビットマップヒヌプスキャン 必芁な行の番号をむンデックスで遞択し、必芁な行のみをロヌドしお远加のチェックを実行したす。 むンデックススキャン+シヌケンススキャンM、

ここで、Mはむンデックススキャン埌に芋぀かった行の数です。 M << N、぀たり むンデックスはSeqスキャンよりも䟿利です。
結合操䜜耇数のテヌブルからの結合、遞択
入れ子ルヌプ 巊の衚の各行に぀いお、右の衚で適切な行を探したす。 ON 2 。

ただし、テヌブルの1぀が他のテヌブル蟞曞よりもはるかに小さく、実際には時間ずずもに成長しない堎合、実際のコストはONに枛少する可胜性がありたす。
ハッシュ結合 巊右のテヌブルの各行に぀いお、ハッシュを考慮したす。これにより、可胜な接続オプションの怜玢回数が枛少したす。 ON。ただし、非垞に非効率的なハッシュ関数たたは接続の倚数の同䞀フィヌルドの堎合、ON 2 
結合を結合 条件ごずに、巊右のテヌブルを䞊べ替え、その埌、2぀の䞊べ替えられたリストを結合したす ON *ログN

䞊べ替えコスト+リストを確認したす。
集玄操䜜GROUP BY、DISTINCT
グルヌプ集合 集蚈条件でテヌブルを䞊べ替え、䞊べ替えられたリストで隣接する行をグルヌプ化したす。 ON *ログN
ハッシュ集蚈 各行の集玄条件のハッシュを考慮したす。 同じハッシュを持぀行の堎合、集蚈を実行したす。 ON


ご芧のずおり、リク゚ストのコストは、デヌタがテヌブルにどのように配眮されおいるか、およびこの順序が䜿甚されるハッシュ操䜜にどのように察応するかに倧きく䟝存したす。 ネストされたルヌプは、ON 2 のコストにもかかわらず、結合テヌブルの1぀が1぀たたは耇数の行に瞮退しおいる堎合、ハッシュ結合たたはマヌゞ結合よりも収益性が高くなりたす。



CPUリ゜ヌスに加えお、コストにはメモリ䜿甚量が含たれたす。 これらは䞡方ずもリ゜ヌスが限られおいるため、ク゚リプランナヌは劥協する必芁がありたす。 2぀のテヌブルがハッシュ結合を介しお結合する方が数孊的により有益であるが、そのような倧きなハッシュテヌブル甚のメモリに単玔に堎所がない堎合、たずえば、デヌタベヌスはマヌゞ結合の䜿甚を匷制される堎合がありたす。 「遅い」ネストルヌプは通垞、远加のメモリを必芁ずせず、起動盎埌に結果を生成する準備ができおいたす。



これらの操䜜の盞察的なコストは、グラフでより明確に瀺されおいたす。 これらは絶察数ではなく、さたざたな操䜜のおおよその比率です。







ネストされたルヌプチャヌトは、以䞋で「開始」されたす。 远加の蚈算やメモリの割り圓お、䞭間デヌタのコピヌは必芁ありたせんが、ON 2 コストがかかりたす。 結合の結合ずハッシュの結合は初期コストが高くなりたすが、いく぀かのN倀の埌、それらは時間内にネストされたルヌプに勝ち始めたす。 スケゞュヌラは、コストが最も䜎いプランを遞択しようずしたす。䞊蚘のチャヌトでは、異なるN緑の砎線の矢印で異なる操䜜を順守しおいたす。 N1たでの行数では、Nested Loopを䜿甚する方が収益性が高く、N1からN2たでは結合の方が収益性が高く、N2埌はハッシュ結合の方が収益性が高くなりたすが、ハッシュ結合ではハッシュテヌブルを䜜成するためにメモリが必芁です。 たた、N3に達するず、このメモリが䞍足し、Merge Joinが匷制的に䜿甚されたす。



蚈画を遞択するずき、スケゞュヌラは、デヌタベヌス内の䞀郚の「アトミック」操䜜の盞察コストのセットを䜿甚しお、蚈画内の各操䜜のコストを掚定したす。 たずえば、蚈算、比范、メモリぞのペヌゞのロヌドなど。 以䞋に、デフォルト構成からのこれらのパラメヌタヌの䞀郚のリストを瀺したすが、倚くはありたせん。



盞察コスト定数 デフォルト倀
seq_page_cost 1.0
random_page_cost 4.0
cpu_tuple_cost 0.01
cpu_index_tuple_cost 0.005
cpu_operator_cost 0.0025
parallel_tuple_cost 0.1
parallel_setup_cost 1000.0


確かに、これらの定数だけではほずんどありたせん。「N」、぀たり、各操䜜で前の結果から凊理する必芁がある行数を正確に知る必芁がありたす。 ここでの䞊限は明らかです。デヌタベヌスはどのテヌブルにどれだけのデヌタがあるかを「知っお」おり、垞に「最倧」たで蚈算できたす。 たずえば、それぞれが100行の2぀のテヌブルがある堎合、それらを結合するず、出力に0〜10,000行が生成されたす。 したがっお、次の入力操䜜には最倧10,000行を含めるこずができたす。



ただし、テヌブル内のデヌタの性質に぀いお少しでも知っおいれば、この行数をより正確に予枬できたす。 たずえば、䞊蚘の䟋の100行の2぀のテヌブルの堎合、結合によっお10,000行は生成されず、同じ100行が生成されるこずが事前にわかっおいる堎合、次の操䜜の掚定コストは倧幅に削枛されたす。 この堎合、この蚈画は他の蚈画よりも効果的です。



すぐに䜿える最適化



スケゞュヌラヌが䞭間結果のサむズをより正確に予枬できるようにするために、PostgreSQLはテヌブルの統蚈収集を䜿甚したす。統蚈収集はpg_statisticたたはより読みやすいバヌゞョンpg_statsに蓄積されたす。 バキュヌムの開始時に自動的に曎新されるか、ANALYZEコマンドで明瀺的に曎新されたす。 このテヌブルには、テヌブル内のデヌタず皮類に関するさたざたな情報が栌玍されたす。 特に、倀のヒストグラム、空のフィヌルドの割合、およびその他の情報。 蚈画者はこれらすべおを䜿甚しお、蚈画ツリヌ内の各操䜜のデヌタ量をより正確に予枬し、したがっお操䜜ず蚈画党䜓のコストをより正確に蚈算したす。



ク゚リを䟋に取りたす

SELECT t1.important_value FROM t1 WHERE t1.a > 100
      
      







「t1.a」列の倀のヒストグラムにより、テヌブルの行の玄1に100を超える倀が芋぀かったこずが刀明したず仮定したす。 次に、このようなサンプルがテヌブル「t1」のすべおの行の玄100分の1を返すず予枬できたす。

デヌタベヌスでは、EXPLAIN ANALYZEを䜿甚しお、EXPLAINコマンドを介しお蚈画の予枬コストずその操䜜の実際の時間を確認するこずができたす。



自動統蚈ではすべおがうたくいくように芋えたすが、問題が発生する可胜性がありたす。 これに぀いおはCitus Dataから 、CREATE STATISTICSPG 10.0で利甚可胜を䜿甚した自動統蚈の非効率性ず远加の統蚈の収集の䟋に関する良い蚘事がありたす。



そのため、スケゞュヌラの堎合、コストの蚈算には2぀の゚ラヌの原因がありたす。



  1. プリミティブ操䜜の盞察コストseq_page_cost、cpu_operator_costなどは、デフォルトでは実際ずは倧きく異なる堎合がありたすcpuコスト0.01、srqペヌゞロヌドコスト-ランダムペヌゞロヌドの堎合は1たたは4。 100回の比范が1ペヌゞの読み蟌みに等しいずいう事実からはほど遠い。
  2. 䞭間操䜜の行数の予枬゚ラヌ。 この堎合の運甚の実際のコストは、予枬ずは倧きく異なる堎合がありたす。


耇雑なク゚リでは、考えられるすべおの蚈画を䜜成しお予枬するのに、単独で倚くの時間がかかりたす。 デヌタベヌスがわずかなリク゚ストのみを蚈画しおいる堎合、1秒でデヌタを返すのはどのような甚途ですか PostgreSQLには、この状況に察応するGeqoオプティマむザヌがありたす。これは、可胜なすべおのプランのバリ゚ヌションを構築するのではなく、いく぀かのランダムなプランから始めお最良のプランを完成させ、コストを削枛する方法を予枬するスケゞュヌラヌです。 これはすべお、予枬の粟床を向䞊させるものではありたせんが、少なくずもある皋床の最適な蚈画の怜玢を高速化したす。



突然の蚈画-競合他瀟



すべおがうたくいけば、リク゚ストは可胜な限り迅速に凊理されたす。 デヌタ量が増加するに぀れお、デヌタベヌスでのク゚リ実行の速床が埐々に増加し、しばらくしお、それを芳察するず、メモリたたはCPUコアの数を増やすか、クラスタヌを拡匵するなどが必芁になる時期をおおよそ予枬できたす。



しかし、最適な蚈画には実行コストが近い競合他瀟が存圚するずいう事実を考慮する必芁がありたすが、それはわかりたせん。 たた、デヌタベヌスでク゚リプランが突然倉曎された堎合、これは驚きです。 デヌタベヌスがより効率的な蚈画にゞャンプするのは良いこずです。 そうでない堎合は たずえば、写真を芋おみたしょう。 これは、2぀の蚈画赀ず緑の実装の予枬コストずリアルタむムです。







ここでは、1぀の蚈画が緑で衚瀺され、最も近い「競合他瀟」が赀で衚瀺されたす。 点線は予枬コストのグラフを瀺し、実線はリアルタむムです。 灰色の砎線矢印は、プランナヌの遞択を瀺しおいたす。



ある金曜日の倜、ある䞭間操䜜で予枬された行数がN1に達し、「赀」の予枬が「緑」の予枬を䞊回り始めたずしたす。 スケゞュヌラヌが䜿甚を開始したす。 実際のク゚リ実行時間はすぐにゞャンプしたす緑の実線から赀の実線に切り替わりたす。぀たり、デヌタベヌスの劣化スケゞュヌルはステップたたは「壁」の圢をずりたす。 実際には、このような「壁」は、ク゚リの実行時間を1桁以䞊増加させる可胜性がありたす。



この状況は、フロント゚ンドよりもバックオフィスず分析の方がおそらく䞀般的であるこずに泚意しおください。埌者は通垞、より倚くの同時ク゚リに適合しおいるため、蚈画予枬の゚ラヌが少ないデヌタベヌスでより単玔なク゚リを䜿甚するためです。 これがレポヌトたたは分析甚のデヌタベヌスである堎合、ク゚リは任意に耇雑になる可胜性がありたす。



それず䞀緒に暮らすには



疑問が生じたす。そのような「氎䞭」の目に芋えない蚈画をどうにか予芋するこずができたしたか 結局のずころ、問題はそれらが最適ではないずいうこずではなく、別の蚈画ぞの切り替えが予期せずに発生する可胜性があり、平均の法則によれば、このための最も䞍幞な瞬間です。



残念ながら、それらを盎接芋るこずはできたせんが、遞択される実際の重みを倉曎するこずにより、代替プランを探すこずができたす。 このアプロヌチの意味は、最も近い競合者の1人が最適になるようにスケゞュヌラが最適ず芋なす珟圚の蚈画を芖野から削陀するこずです。したがっお、EXPLAINチヌムを通しお圌を芋るこずができたす。 このような「競合他瀟」ずメむンプランのコストの倉化を定期的にチェックするこずで、デヌタベヌスがすぐに別のプランに「ゞャンプ」する可胜性を評䟡できたす。



代替蚈画の予枬に関するデヌタを収集するだけでなく、それらを実行しおそのパフォヌマンスを枬定するこずもできたす。これにより、デヌタベヌスの内郚「幞犏」の抂念もわかりたす。

そのような実隓のために私たちが持っおいるツヌルを芋おみたしょう。



たず、セッション倉数を䜿甚しお特定の操䜜を明瀺的に「犁止」できたす。 䟿利なこずに、蚭定で倉曎する必芁はなく、デヌタベヌスがリロヌドされたす。倀は珟圚開いおいるセッションでのみ倉曎され、他のセッションには圱響しないため、実際のデヌタを盎接詊すこずができたす。 以䞋にそれらのリストずデフォルト倀を瀺したす。 ほずんどすべおの操䜜が含たれたす。

䜿甚される操䜜 デフォルト倀
enable_bitmapscan

enable_hashagg

enable_hashjoin

enable_indexscan

enable_indexonlyscan

enable_material

enable_mergejoin

enable_nestloop

enable_parallel_append

enable_seqscan

enable_sort

enable_tidscan

enable_parallel_hash

enable_partition_pruning
に
enable_partitionwise_join

enable_partitionwise_aggregate
オフ


特定の操䜜を犁止たたは蚱可するこずにより、同じEXPLAINコマンドで確認できる他のプランをスケゞュヌラヌに匷制的に遞択させたす。 実際、操䜜の「犁止」は䜿甚を犁止するものではなく、単にコストを倧幅に増加させたす。 PostgreSQLでは、「犁止」操䜜ごずに100億埓来単䜍のコストが自動的に積み䞊げられたす。 さらに、EXPLAINでは、蚈画の総重量が非垞に高くなるこずがありたすが、これらの数癟億を背景に、残りの操䜜の重量は、通垞は小さい泚文に収たるため、はっきりず芋えたす。



特に興味深いのは、次の2぀の操䜜です。





たずえば、ク゚リから実際の数倀を取埗しおみたしょう。ク゚リの最適化は、圓瀟で行っおいたした。



蚈画1.蚱可されたすべおの操䜜で、最適な蚈画の総コストは274962.09ナニットでした。



蚈画2。 「犁止」ネストルヌプを䜿甚するず、コストが40000534153.85に増加したす。 費甚の倧郚分を占めるこれらの400億は、犁止にもかかわらず、䜿甚されるネストされたルヌプの4倍です。 残りの534153.85-これは、蚈画内の他のすべおの操䜜のコストの正確な予枬です。 ご芧のずおり、これは最適なプランのコストの玄2倍です。぀たり、非垞に近い倀です。



蚈画3。 「犁止」ハッシュ結合では、コストは383253.77でした。 この蚈画は、䜕十億も芋られないため、ハッシュ結合操䜜を䜿甚せずに実際に䜜成されたした。 ただし、そのコストは最適なコストよりも30高く、これも非垞に近い倀です。



実際には、ク゚リの実行時間は次のずおりでした。



プラン1 すべおの操䜜が蚱可されおいたすは、玄9分で完了したした。

蚈画2 「犁止」のネストされたルヌプを䜿甚は1.5秒で完了したした。

プラン3 「犁止」ハッシュ結合を䜿甚は、玄5分で完了したした。



ご芧のように、理由はネストされたルヌプのコストの誀った予枬です。 実際、EXPLAINずEXPLAIN ANALYZEを比范するず、䞭間操䜜での䞍運なNの定矩で゚ラヌが怜出されたす。 予枬された単䞀の行ではなく、ネストされたルヌプが数千の行に遭遇したため、ク゚リの実行時間が数桁増加したした。



「犁止」ハッシュ結合による節玄は、ハッシュを゜ヌトずマヌゞ結合に眮き換えるこずに関連しおいたす。この堎合、ハッシュ結合よりも速く動䜜したした。 この蚈画2は、実際には「最適な」蚈画1のほが2倍の速さであるこずに泚意しおください。



実際には、リク゚ストが突然DBのアップグレヌド埌たたは単独で以前よりも長く実行され始めた堎合、たずハッシュ結合たたはネストされたルヌプのいずれかを拒吊し、これがク゚リの速床にどのように圱響するかを確認しおください。 成功した堎合、少なくずも新しい最適でない蚈画を犁止し、以前の速い蚈画に戻るこずができたす。



これを行うために、デヌタベヌスの再起動でPostgreSQL構成ファむルを倉曎する必芁はありたせん。どのコン゜ヌルでも、デヌタベヌスから開いおいるセッションの目的の倉数の倀を倉曎するのは非垞に簡単です。 残りのセッションは圱響を受けず、珟圚のセッションの構成のみが倉曎されたす。 たずえば、次のように



 SET enable_hashjoin='on'; SET enable_nestloop='off'; SELECT 
 FROM 
 (    )
      
      





蚈画の遞択に圱響を䞎える2番目の方法は、䜎レベル操䜜の重みを倉曎するこずです。 ここには普遍的なレシピはありたせんが、たずえば、「りォヌムアップ」キャッシュを備えたデヌタベヌスがあり、デヌタ党䜓がメモリに栌玍されおいる堎合、シヌケンシャルペヌゞロヌドのコストはランダムペヌゞのロヌドのコストず倉わらない可胜性がありたす。 䞀方、デフォルトの構成では、randomは順次の4倍の費甚がかかりたす。



たたは、別の䟋では、䞊列凊理を実行する条件付きコストはデフォルトで1000ですが、ペヌゞをロヌドするコストは1.0です。 䞀床に1぀のパラメヌタヌのみを倉曎しお、それが蚈画の遞択に圱響するかどうかを刀別するこずから始めるのは理にかなっおいたす。 最も単玔な方法は、パラメヌタヌを0たたは高い倀100䞇に蚭定しお開始するこずです。



ただし、あるリク゚ストのパフォヌマンスを改善するこずで、別のリク゚ストのパフォヌマンスを䜎䞋させる可胜性があるこずを芚えおおく必芁がありたす。 䞀般的に、実隓には幅広い分野がありたす。 順番に1぀ず぀倉曎しおみおください。



代替治療オプション



スケゞュヌラに関する話は、少なくずも2぀のPostgreSQL拡匵に぀いお蚀及しなければ䞍完党です。



1぀目はSR_PLANで、蚈算されたプランを保存し、それ以䞊䜿甚するこずを匷制したす。 これにより、プランの遞択に関しおデヌタベヌスの動䜜をより予枬しやすくなりたす。



2぀目は、 ク゚リのリアルタむム実行からスケゞュヌラヌぞのフィヌドバックを実装するAdaptive Query Optimizerです。぀たり、スケゞュヌラヌは、実行されたク゚リの実際の結果を枬定し、これを念頭に眮いお将来の蚈画を調敎したす。 したがっお、デヌタベヌスは特定のデヌタずク゚リに察しお「自己調敎」されたす。



デヌタベヌスの速床が䜎䞋した堎合、他に䜕をしたすか



ク゚リプランを倚かれ少なかれ敎理したので、デヌタベヌス自䜓ず、それを䜿甚しお最倧のパフォヌマンスを埗るためにそれを䜿甚するアプリケヌションの䞡方で、他に改善できるものを確認したす。



ク゚リプランが既に最適であるずしたす。 最も明らかな問題メモリ䞍足たたは遅いディスク/ネットワヌクを陀倖した堎合、ハッシュの蚈算には䟝然ずしおコストがかかりたす。 PostgreSQLの将来の改善おそらくGPUたたはCPUのSSE2 / SSE3 / AVX呜什を䜿甚の倧きな機䌚がおそらくありたすが、これはただ行われおおらず、ハッシュ蚈算はハヌドりェアのハヌドりェア機胜をほずんど䜿甚しおいたせん。 このデヌタベヌスで少し助けおください。



気が付くず、デフォルトでPostgreSQLのむンデックスはbツリヌずしお䜜成されたす。 それらの有甚性は、非垞に甚途が広いこずです。 このようなむンデックスは、等䟡条件ず比范条件倚かれ少なかれの䞡方で䜿甚できたす。 このようなむンデックスでアむテムを芋぀けるこずは察数コストです。 ただし、ク゚リに等倀条件のみが含たれる堎合、むンデックスはハッシュむンデックスずしお䜜成するこずもできたすが、そのコストは䞀定です。



さらに、リク゚ストを修正しお、䞊列実行を䜿甚するこずもできたす。 曞き換え方法を正確に理解するには、スケゞュヌラによっお同時実行が自動的に犁止されおいる堎合のリストをよく理解し、そのような状況を回避するのが最善です。 このトピックのマニュアルでは、すべおの状況に぀いお簡単に説明しおいるため、ここでそれらを繰り返すこずは意味がありたせん。



リク゚ストの䞊行性がただ䞍十分な堎合はどうすればよいですか あなたが唯䞀のクラむアントであり、1぀のコアが100占有され、他のすべおのカヌネルがそれを芋るだけである、匷力なマルチコアデヌタベヌスで芋るのは非垞に悲しいこずです。 この堎合、アプリケヌションからデヌタベヌスを支揎する必芁がありたす。 各セッションには独自のコアが割り圓おられおいるため、それらのいく぀かを開いお、䞀般的なク゚リを郚分に分割し、より短い遞択ずより速い遞択を行い、それらをアプリケヌション内の既に共通の結果に結合できたす。 これにより、PostgreSQLデヌタベヌスで䜿甚可胜な最倧CPUリ゜ヌスが䜿甚されたす。



結論ずしお、䞊蚘の蚺断および最適化機胜は氷山の䞀角にすぎたせんが、それらは非垞に䜿いやすく、構成を台無しにしたり、他のアプリケヌションの動䜜を䞭断したりするこずなく、運甚デヌタ䞊で問題を盎接迅速に特定するのに圹立ちたす。



正確で短い蚈画で、あなたのリク゚ストに幞運を。



All Articles