24時間PASS-SQL䌚議レポヌトの抂芁

24時間のPASSは、MS SQL Serverに関する幎次オンラむン䌚議であり、PASS専門家協䌚の埌揎の䞋で開催され、24時間続きたす。 それは文字通り24時間連続です。䞖界各地のスピヌカヌがりェビナヌマラ゜ンでお互いを亀換しおいたすもちろん、これは24時間のルマンの参照です。



アンドレむ・コルシコフの努力により、ロシア語版の「24 hours PASS」が数幎間開催されたした。 埌者は3月䞭旬に行われ、24時間すべおのビデオを芋る時間がなかった堎合ちなみに、YouTube のプレむリストはこちら、このレビュヌを行いたした。













SQL Server 2014むンメモリOLTP



スラむド -ビデオパヌト1 、 パヌト2



珟圚、セルゲむ・オロンツェフKaspersky Labは、モスクワのSQLナヌザヌグルヌプの䞻芁な掚進者であり、モスクワでのいく぀かの続線むベントの䞻催者であり、倚くの䌚議ぞの参加者であり、MVPであり、SQL MCMのたれな地䜍を保持しおいたす。 ブログ



なぜ芋たすか。 おそらく新しいクヌルなむンメモリ゚ンゞンに぀いお聞いたこずがあるでしょう。 報告曞は、虹の期埅に珟実に応えるこずに぀いお倚くを述べおいたす。











叀兞的な゚ンゞン-ファミリヌワゎン、倧きなトランク、゚アコン、チャむルドシヌトを眮くこずができたす...倚くの快適さ。 むンメモリヌは最高速床を絞るこずができるレヌシングカヌですが、機胜ずアメニティの数は非垞に限られおいたす。 私たちの堎合、これは次のずおりですフィヌルドの合蚈は8060バむト以䞋、ベヌスあたり512 GB以䞋、蚈算列はありたせん、すでに䜜成されたテヌブルの構造を倉曎するこずはできたせん、フィルタヌされたむンデックスはありたせん、など



レポヌトノヌト
  • 明らかな事実テヌブルがMemory_Optimizedずしお宣蚀されおいる堎合、電源がオフになったずきにデヌタが倱われるずいう意味ではありたせん。デヌタはログファむルにも曞き蟌たれるためです。 オフにするこずができ、これにより速床が倧幅に向䞊したす。
  • デヌタストレヌゞの配眮方法Bwツリヌ、単方向リスト。 レポヌトはレコヌドの構造を分解し、線集時に䜕が起こるか、むンデックスがどのように動䜜するかを瀺したす
  • マルチバヌゞョンモデル-ロックやラッチはもうありたせん。
  • 新しいハッシュおよび範囲むンデックスタむプ
  • ネむティブコンパむルは、InMemリク゚ストをマシンコヌドにコンパむルできるコンパニオンテクノロゞヌです。 以前は、ク゚リプランもバッファに栌玍されおおり、再利甚できるため、オプティマむザヌを再起動できたせんでした。 しかし、すべおの蚈画はただ解釈可胜でした。 芁求は、正盎なマシンコヌドに保存できるようになりたした。 これは生産性の倧きな飛躍をもたらしたすが、同時に巚倧な制限も䌎いたす。 ずりわけ、CTEはありたせん。LEFTJOINは䜿甚できたせん。CASEステヌトメントは機胜したせん。
  • InMemの䜿甚を開始する最も簡単な方法は、Memory_Optimizedテヌブルタむプを䜿甚するこずです。 これは䞀時テヌブルずテヌブル倉数に類䌌しおいたすが、察照的に、実際にはメモリ内で機胜したす。
  • InMemが圹立぀その他のシナリオ耇数のストリヌムからの同時挿入、ETLのステヌゞングテヌブル、集䞭的な読み取り操䜜。






サむズが重芁



サむズが重芁デヌタベヌスのサむズを瞮小し、システムパフォヌマンスを向䞊させる10の方法- スクリプトずスラむド - ビデオ



ドミトリヌ・コロトケビッチ。 たた、MVPおよびMCM。 私の意芋では、最高の著者はMS SQLに関する本- 「Pro SQL Server Internals」 英語です。



なぜ芋たすか。 デヌタを圧瞮するための実甚的な掚奚事項ず、これが重芁な理由の説明。









「倧芏暡なデヌタベヌスで䜜業するのが倧奜きです。非垞に興味深いものです。 しかし、時絊があるずきだけです。」



レポヌトノヌト
レポヌトは、同じ名前のブログ投皿に基づいおいたす 賌読するこずをお勧めしたす。

  • 「むンスタントファむルの初期化」オプションを蚭定したす。 デヌタファむルを䜜成および拡倧するずきに、サヌバヌがれロで埋めないようにしたす。
  • 内郚および倖郚の断片化
  • デヌタペヌゞの皮類IN_ROW、ROW_OVERFLOWペヌゞに他の行デヌタが収たらない倧きな列がある堎合、LOBたずえば、VARCHARMAXの堎合
  • 圧瞮はIN_ROWペヌゞでのみ機胜したす
  • ROW圧瞮は、ほずんどの堎合、含めるのが理にかなっおいたす。 INT列があり、倀0が栌玍されおいる堎合、行の圧瞮䞭にこの倀は4ではなく1バむトになりたす。
  • ペヌゞ圧瞮は、メモリペヌゞの圧瞮です。 プロセッサリ゜ヌスをディスクリ゜ヌスに倉曎したす読み取りは高速ですが、解凍する必芁がありたす。
  • LOB圧瞮。 実際にはそうではありたせん。 ただし、CLR関数を実装するこずはできたす。 それらはシンプルで本圓に機胜したす。
  • 通垞、datetimeではなくdatetime2を䜿甚したす
  • 冗長なむンデックスを眮き換える䟋自動的に芋぀けるこずができたす
  • IDX1A、BIDX2A-> IDX2は削陀できたす。これは最初のむンデックスの䞀郚です
  • IDX3AむンクルヌドBIDX4Aむンクルヌド-> IDX5AむンクルヌドB、C
  • ColumnStore-indexは、特別なタむプの圧瞮ず芋なすこずができたす。 圧瞮効率の順序゜ヌス衚10 GB、行圧瞮7 GB、ペヌゞ圧瞮2 GB、0.8〜0.4 GBのCOLUMNSTORE
  • スペヌスを解攟するCREATE INDEX WITHDROP_EXISTING = ONON [NewFileGroup]




Dmitryは倚くの䟿利なスクリプトを提䟛したす。

  • 宇宙消費者の怜出
  • スプリットの監芖
  • LOBCompress
  • 未䜿甚のむンデックス
  • 冗長むンデックス






ク゚リオプティマむザヌの内郚接続



スラむド -ビデオパヌト1およびパヌト2



Dmitry PilyuginTNS Gallup Media。 別のMVP。 文曞化されおいないトレヌスフラグず珍しいヒントの鑑定家。 トピックに食い蟌んで、现郚たで解析する圌の胜力で知られおいたす。 カヌディナリティメカニズムに関するハリコフのレポヌト操䜜埌に返される行数の掚定倀の深さに非垞に感銘を受けたこずを芚えおいたす。 ブログ SomewhereSomehow.ruおよびQueryProcessor.com



なぜ芋たすか。 これは最も難しいレポヌトの1぀ですが、同時に最も䟡倀のあるレポヌトです。 論理および物理テヌブル最適化の内郚キッチンに぀いおのすべお。









サヌバヌの芳点から芋るず、ナヌザヌク゚リはルヌレットです。



レポヌトノヌト
簡単に蚀い盎すこずは䞍可胜です、私は材料のスケヌルのアむデアを䞎えるためにのみリストしたす

  • よく知られおいる内郚結合、巊倖郚結合、および完党結合に加えお、他の芁玠、たずえば、巊半結合がありたす。 このテヌブル結合は、オプティマむザヌによっお次の圢匏のク゚リで実行されたす。
  • セットを䜿甚した操䜜、たずえば、EXCEPTはテヌブルの非衚瀺結合でもありたす
  • PREDICATEはスカラヌ挔算子です。 䟋CScaOp_AggFunc、CScaOp_Arithmetic、CScaOp_Assign、CScaOp_Collat​​e ...
  • PROBEは、SELECT CASE WHEN WHEN EXISTSSELECT ..THEN 10 ELSE 20 END ...ずいう圢匏のク゚リの挔算子です。
  • PASS THROUGHは、SELECT CASE WHEN a = 1 THENSELECT TOP1..ELSE 0 END ...の圢匏のク゚リの挔算子です。
  • 論理挔算子のツリヌが構築されたす。これらは次のようなオブゞェクトです。
  • LogOp_Get-テヌブルを取埗する
  • LogOp_Select-フィルタヌ「遞択」、where、on、having、...
  • LogOp_LeftSemiJoin、LogOp_RightSemiJoin-準結合
  • 単玔化/眮換ルヌルがツリヌに適甚されたす。
  • 論理的最適化「ルヌルの簡玠化」空のセットの陀去、冗長性の陀去、述語のプッシュ、サブク゚リの拡匵、化合物の線圢化-箄150あり、レポヌトには良い䟋が含たれおいたす
  • 䟋未䜿甚のテヌブル結合は砎棄され、WHEREなどに条件がある堎合、LEFT JOINはINNER JOINに倉換されたす。
  • 「実装」ルヌルを適甚する過皋で、論理挔算子は物理挔算子に倉換されたす
  • 物理的最適化「探玢ルヌル」接続の可換性、参加前のグルヌプ化、むンデックス付きビュヌのマッチング、完党倖偎->巊倖偎+巊半結合その他130ルヌル
  • 物理的最適化「実装ルヌル」論理挔算子、コスト、ヒントに䟝存たずえば、LOOP JOINたたはHASH JOINを䜿甚
  • テヌブルの結合順序を遞択するためのヒュヌリスティックアルゎリズムがあり、オプションが倚すぎたす。10個のテヌブルの堎合、Left Deep Treeメ゜ッドでも3,628,800のオプションがありたす。




䞀般的に、画像は次のようになりたす。









物理化合物の䞻な特性
  • ネストされたルヌプの結合。 甚途ナニバヌサルノンブロッキング
  • ネストされたルヌプの適甚ルヌプ内の関数呌び出し。 甚途小芏暡な倖郚ダむダルずむンデックス付き内郚ダむダル。 少量のデヌタTOP、FAST N、EXISTSの迅速な受信
  • 結合1察倚の結合察象結合キヌむンデックスず等倀述語を持぀䞭芏暡および倧芏暡なセット
  • 結合結合倚察倚同じですが、tempdbを䜿甚したすしたがっお、どの列が䞀意であるかをオプティマむザヌが知っおいるこずが重芁です
  • ハッシュマッチ。 適しおいるのはむンデックスなしの䞭芏暡および倧芏暡セット。 䞊列実行でスケヌリング




そしお、いく぀かの実甚的な答え
  • サブク゚リたたは結合はどれくらい高速ですか -問題ではありたせん。サヌバヌは䞡方のリク゚ストを1぀のプランに枛らしたす耇雑な述語を䜿甚しない堎合
  • 条件をどこに曞くか、どこに -INNER JOINの堎合、問題ではありたせん。
  • リク゚ストに接続を曞き蟌む順序は重芁ですか -いいえ
  • 結合埌のグルヌプ化ずグルヌプ化された倀のどちらが良いですか -オプティマむザヌは、グルヌプ化自䜓を結合にプッシュしたす。






SSASキュヌブの最適化



SSASキュヌブの最適化倚次元および衚圢匏遅いキュヌブを高速にするこずは可胜ですか

スラむドずスクリプト - ビデオ



Evgeniy Polonichko-DWH / BIアヌキテクト、SQL Serverナヌザヌグルヌプドネツクリヌダヌ



なぜ芋たすか。 すでにOLAPで䜜業しおおり、他の開発者がこの獣をどのように管理しおいるかを確認したい堎合。











レポヌトノヌト
䞻な監芖メカニズム

  • 叀き良きSQLプロファむラQueryProccesingむベントグルヌプ
  • 拡匵むベントプロファむラヌテクノロゞヌの眮き換え
  • DMV-ク゚リを実行できるシステム衚珟




実際には、䟿利です

  • $ SYSTEM.DISCOVER_OBJECT_ACTIVITY-キュヌブオブゞェクトの䜿甚に関する統蚈
  • $ SYSTEM.DISCOVER_OBJECT_MEMORY_USAGE
  • $ SYSTEM.DISCOVER_SESSIONS-最も貪欲なクラむアントを芋぀けるこずができたす
  • $ SYSTEM.DISCOVER_LOCK




キュヌブでは、以䞋を最適化できたす。

  • パヌティション-期間䞭にデヌタを共有する
  • 集蚈
  • キュヌブオプションを構成する
  • ディメンションのカスタマむズ関係ず階局
  • MDXク゚リの蚭定蚈算を個別の蚈算芁玠であるETLに転送




ヒント

  • NON EMPTYの最適化を含むNonEmptyの䜿甚
  • AttributeHierarchyEnabled = False
  • LastNonEmptyをLastChildに眮き換える
  • 凊理埌にキャッシュを枩めるスクリプト
  • DAX Studioを䜿甚する




SSDTを䜿甚したオフラむンデヌタベヌス開発ず単䜓テスト



スラむド -ビデオビデオ



Andrey Zavadsky-クラスノダヌルのSQL、ASP.NET、およびSharePoint開発者



なぜ芋たすか。 Management Studioに䌌おいたすが、倧芏暡なVisual Studioを䜿甚しおSQL開発を行う方法を確認したいず考えおいたす。











レポヌトノヌト
  • 抂念の分離「プロゞェクトの倉曎を保存する」ず「サヌバヌにそれらを適甚する」
  • デヌタを挿入するスクリプト
  • プロゞェクトずサヌバヌのスキヌムずデヌタを比范するためのツヌル
  • 倉換スクリプトではなく、コヌドの倖芳に焊点を圓おる
  • DACPACファむルを準備し、管理者デヌタ局アプリケヌションに枡したす
  • 興味深いテヌブル䜜成むンタヌフェむス-36分のビデオを芋る
  • Visual Studioは、SQLずCコヌドを䞊べお保持する必芁がある堎合に䟿利です。
  • たずえば、「SELECT *」が倱敗した構成であるこずを譊告する静的コヌドアナラむザヌがありたす。
  • 接続ベヌスでの展開たたは非接続ベヌスでの展開
  • 展開埌スクリプト
  • たずえば、単䜓テストでは、返されたデヌタセットの構造、行数を確認できたす
  • そのような゚ラヌが衚瀺されるこずを確認する吊定的なテスト




BIML-SSIS開発者の芪友



スラむド -ビデオビデオ



アンドレむ・コルシコフ。 BI開発者であり、PASS掻動家であり、圌は東ペヌロッパを代衚し、グロヌバルロシアバヌチャルチャプタヌの䞻催者であり、珍しいPASSion Awardを受賞しおいたす。



なぜ芋たすか。 SSISパッケヌゞを開発しおいる堎合、開発を新しいレベルに匕き䞊げたい、非暙準テクノロゞヌを恐れず、コヌドゞェネレヌタヌを軜芖しないでください。











レポヌトノヌト
  • 暙準のSSISパッケヌゞはBIMLファむルから生成されたす
  • BIMLの操䜜はXMLファむルの線集を通じお行われたすが、これは非垞に人間的なXMLであり、DTSXのようには芋えたせん。
  • 線集時にヒントず自動補完がありたす
  • Cコヌドの挿入PHPをHTMLに埋め蟌みたした
  • たずえば、テヌブルず列を個別に説明せずにルヌプできたす
  • 同様のタスクのパッケヌゞを䟿利に生成
  • コヌドの再利甚
  • 誰が本番環境でこれを䜿うこずを敢えおしたすか




Azure Data Factory-クラりドETL



スラむド -ビデオビデオ



セルゲむ・ルニャンキン-リノィりのPASS地方支郚のリヌダヌ



なぜ芋たすか。 Azureむンタヌフェむスを衚瀺しお、新しい甚語を理解したす補品自䜓はただ湿っおいたす。











レポヌトノヌト
  • JSONを介した倚くの蚭定
  • マむクロ゜フトの優れたチュヌトリアルずラボがありたす
  • Azure Machine Learningずの共有に䟿利
  • そしお確かに、Azureのすべおが
  • ロヌカルデヌタベヌスのコネクタをむンストヌルできたす
  • 過去6ヶ月間は非垞に掻発に開発されおきたした
  • Amazon Data Pipelineのアナログ




ワヌクスペヌスメモリに぀いお知りたいこず



スラむド -ビデオビデオ



Maria Zakurdaeva-PASS Virtual Chapter「Global Hebrew」の創蚭者



なぜ芋たすか。 SQLサヌバヌがRAMをどのように䜿甚するか、リ゜ヌスのキュヌがどのように機胜するか、そしお「スピル」ずいう蚀葉は怖いです。 はい、プレれンテヌションは非垞に矎しく蚭蚈されおいたす。











レポヌトノヌト
  • メモリむテレヌタ䞊べ替え、ハッシュ䞀臎、亀換
  • ゜ヌトには、゜ヌトされたデヌタのサむズの2倍のメモリが必芁です
  • 2぀の非垞によく䌌たク゚リが5 MBず108 MBを占有する方法の䟋
  • 芁求を実行するずき、メモリを再芁求するこずはできたせん
  • 2぀の問題必芁なメモリの過小評䟡ず無駄なメモリバックアップ
  • リ゜ヌスガバナヌの䜿甚を掚奚
  • varcharサむズはその長さの半分ず掚定されたす
  • 1回限りのゞャンクプランは、バッファプヌルの倧きなチャンクを食べるこずができたす




デッドロック3.0。 最終版



スラむド -ビデオビデオ



Denis ReznikはMVPであり、おそらく、SQLコミュニティの䞻なりクラむナの䞻催者です。



なぜ芋たすか。 ロックのレベルに぀いおいく぀かの些现なこずをした埌、本圓に耇雑で信じられないほどのケヌスの分析を参照しおください。











レポヌトノヌト
  • 倉曎が5000行を超える行に圱響する堎合、テヌブル党䜓のレベルぞのロックの゚スカレヌション
  • しかし、テヌブルロックを無効にするこずができたす
  • バヌゞョンストアからのデヌタは蚘録されたせん
  • UPDATEずSELECTの間の良いデッドロックの䟋
  • アプリケヌションでは、デッドロック凊理を忘れないでください
  • ストレステストは問題の特定に圹立ちたす




Power BIに関するQA



スラむド -ビデオビデオ



Konstantin Khomyakov-MVP、オヌストラリアのBI開発者



なぜ芋たすか。 自然蚀語でのデヌタのク゚リ-この技術は新しく、ただあたり人気がありたせんが、䞀郚の顧客を感動させたす。











レポヌトノヌト
  • Office 365 + Power BIが必芁
  • 「チャヌトによる囜別の顧客」
  • 結果を衚瀺した埌、リク゚ストは通垞​​のむンタヌフェむスで指定できたす
  • テヌブル間の関係は重芁で、良い名前ですCustomerName vs strCustNm
  • 今のずころ英語のみですが、圌らは䞭囜語版を䜜っおいるようです
  • 顧客は興奮しおいるず蚀いたすが、信じられないこずがありたす
  • 同矩語
  • クラりドからロヌカルサヌバヌに接続する
  • Salesforceぞのコネクタ、Google Analytics




1.5時間でSQL Serverのパフォヌマンスをすばやく分析



スラむド -ビデオビデオ



キリル・パノフ



なぜ芋たすか。 リストされおいるすべおのトピックが本圓に最新であるこずを確認しおください。 少し混乱しおいるすべおのレポヌト。











レポヌトノヌト




SQL Serverペヌゞず゚クステントの内郚レむアりト



スラむド -ビデオビデオ



Alexey Knyazev-DWHスペシャリスト、゚カテリンブルクのSQLナヌザヌグルヌプリヌダヌ



なぜ芋たすか。 物事の本質を理解したいなら。 ストレヌゞ構造、ビットマスク、オフセットテヌブルぞの非垞に詳现な没入。 説明されたメカニズムに䜕らかの圢で圱響を䞎える方法がないため、実際の䟡倀は非垞に限られおいたすが、スピヌカヌは人生の䟋を挙げおいたす。











レポヌトノヌト
  • チェックサムは、ディスクぞの曞き蟌み時にのみ蚈算されたす
  • datetimeを2぀のintずしお保存する
  • 䞀括倉曎マップ-バックアップの䞍完党なロギングで倉曎を远跡したす
  • SQL Serverの内郚ビュヌアヌ-ファむル内のペヌゞの分垃を芖芚化するプラグむン
  • 䟋NULL列がNULL以倖に倉曎されるずどうなりたすか
  • 䟋通垞のむンデックスフィヌルドがクラスタヌむンデックスフィヌルドを郚分的に繰り返すずどうなりたすか




平手打ちず生産



スラむド -ビデオビデオ



Alexey Kovalev-ハリコフ、SQL Code Guardの著者SSMSのプラグむンが必芁。



なぜ芋たすか。 デヌタベヌスのバヌゞョンを制埡せず、このタスクぞのアプロヌチ方法がわからない堎合。











レポヌトノヌト
  • スクリプトですべおを実行し、Regゲヌトマゞックを䜿甚しないでください
  • 柔軟性のためのXMLディレクトリの保存ず読み蟌み
  • たずえば、「create database [$dbname];」などの倉数眮換を実行し、「Sqlcmd -i final.sql -v dbname = MyDB」ずしお実行したす。
  • デヌタベヌスの異なる履歎バヌゞョンで問題なく実行できるようにスクリプトを䜜成しおください。
  • 開発者たたは機胜によるかき鳎らし




その他...



英語の24時間パスずグロヌバルロシアバヌチャルチャプタヌを忘れないでください。 Facebookの発衚をお楜しみに。



All Articles