第20回 SQL Server 2019勉強会に参加しました on July 27
データベースは奥が深い!
結論からになってしまいますが、SQL Server初学者だったとこともありコアなことを学んだ一日でした。(・∀・)
オープンソース系データベースやNoSQL(使いどころは異なりますが)の台頭によりEnterprise向けでもすこーし密やかな存在になってしまった感もあるSQL Server。ただ、今後自社のデータベース管理でSQL Serverを利用する可能性もある為、当セミナーに参加致しました。
各セッションの内容ピックアップ
とにかく色々とメモしていた為、自分が要点と感じたところをメインに記載していきます。誤字脱字あったら申し訳ありません・・・・。(´д`)
【初級者向け】SQL Server 2019 Reporting Services Part-I Introduction
「SSRS」と呼ばれるレポーティングサービスに関するセッションでした。自宅環境内にSSRSをインストールしたことはありましたが、SCCMの環境構築の一環で入れただけだったのでサービスの内容自体は完全なる初心者でした。。
・2016からDatazenを買収してモバイルレポートを作成出来るようになった
・2017からはiso本体よりインストールする
・セミナー当日時点では2017のSSRSを導入する必要がある
➡今後はPower BIに統合されていく?(正式なアナウンスはない)
➡まだまだ、SSRSにあってPower BIにない機能もある。
・ここに羅列はできないですが、SSRSを構成するソフトウェア群は本当に多いです!環境構築は結構大変・・・・。
・Power BI統合するとクラウドのポータルからオンプレのレポートを開けるそう。ただし、前提条件として Azure AD の参加と Office 365 のライセンスが必要。
・Power BI Report Server と SSRS(略称)は金額の比較としては SSRS の方が安い!が、製品のライフサイクル的な面を考えると結果クラウドの方が良いか。
・レポートサービスはデータセットが整っていると非常にキレイなグラフが出せて良いなぁ、と感じました。
【中級者向け】SQL Server First Responder Kit
・SQL Serverのヘルスチェッカー、サーバーで何が起こっているのかを理解するのに役立つツール。
・Brent Ozar社の公式ページから申し込んでダウンロードできる。(この会社自体は SQL Serverのコンサルを行っている会社らしい)
・インストールに関してはプロシージャをそのまま叩いてもダメだった。Power Shell ギャラリーにあるスクリプトを利用すればできる、とのこと。
・実行結果に関しては Priority で判断可能
・後で調べたい単語 [Fill-Factor] / [仮説Index] / [架空の index heaps]
【初級者、中級者向け】 Hands-On Session SQL Server Profiler/サーバサイドトレースの使い方と、CPUボトルネックを見つける方法(時間があれば拡張イベントも)
ZOZOテクノロジーズの廣瀬様が登壇されたセッションでした。下記Qiitaの記事をベースにセッションは進行しました。
・SQL Server Profiler
➡SSMS(SQL Server Management Studio)でクエリを流した際に裏でどう動いているか、理解を深める際には今も有用。
➡DB接続時に「application name=hoge」みたいのを入れてフィルタをかけると表示するものを絞れる
・サーバサイドトレース
➡やる時は1時間程度回すのが良い
➡大量にデータ出力されるのでこの結果自体をテーブルにして確認するのが良い
・拡張イベント
➡前2者と比較して負荷が低く新しい概念である
➡サーバサイドトレースと比較してGUIは異なるものの直感的に取れる数値は一緒?
➡サーバサイドトレースと同じく出力された結果自体をテーブルにして確認
・後で調べたい単語 [XEvent?] これ?
SSMS XEvent Profiler の使用 - SQL Server | Microsoft Docs
【初級者向け】MCP70-764試験対策Tips バックアップの基礎 part2
MCP対策で章末問題等から出題し皆で考える、というセッションでした。
・押さえたい単語 [RTO (Recovery Time Objective) / RPO (Recovery Point Objective)]
・出題
➡ケースに沿ってどうバックアップを取るかという問題
(前提条件が不足?していたこともあって問題としては微妙だったようです。。)
➡他2問
➡偶然、3問共に正解できたもののガチで難しかったです・・・・MCP難しい。。
・後で調べたい単語 [VLDB] / [NVDIMM]
【初級者向け】SQL Server Memory Management Architecture
・仮想アドレス空間は「ユーザーモード用」と「カーネルモード用」の領域に分割される
・32Bit は カーネルとユーザーが各2GB、64Bit(X64 / IA64) は カーネルとユーザーが各8TB!
仮想アドレス領域 - Windows drivers | Microsoft Docs
・仮想アドレス空間の中身を確認するためには「VMMap v3.26」を利用する
VMMap - Windows Sysinternals | Microsoft Docs
・reserved / committed
➡予約:仮想メモリ領域を予約しているが実際には物理メモリを割り当てていない
➡確定:物理メモリを割り当てている
➡「max_server_memory」はreservedの上限値を制限するためのパラメータ
・SQL Serverはなるべくページングを発生しないようにメモリアーキテクチャを設計すること。「Lock Pages in Memory」を設定すること。
・「-g」起動オプションは2014公式ドキュメントにはあるものの2017公式ドキュメントにはない。コマンドのオプション一覧には出る?
➡2016以降はX64版しかリリースされていないため、「-g」の機能の役割効果が目立たなくなる?
➡とは言っていたものの下記を見る限りある?反映された?
sqlservr.exe アプリケーション - SQL Server | Microsoft Docs
➡SQL Serverの内部構造を知るには下記の本がオススメとのこと
・後で調べたい単語 [ハイブリッドバッファープール]