都内で働くSEの技術的なひとりごと / Technical soliloquy of System Engineer working in Tokyo

都内でサラリーマンやってます。SQL Server を中心とした (2023年からは Azure も。) マイクロソフト系(たまに、OSS系などマイクロソフト以外の技術も...)の技術的なことについて書いています。日々の仕事の中で、気になったことを技術要素関係なく気まぐれに選んでいるので記事内容は開発言語、インフラ等ばらばらです。なお、当ブログで発信、発言は私個人のものであり、所属する組織、企業、団体等とは何のかかわりもございません。ブログの内容もきちんと検証して使用してください。英語の勉強のため、英語の

SQL Server

SQL Server のチューニングについてまとめてみる - その21 - ( あるプロジェクト向けに書いてみた )

最近、SQL Server の診断をする機会が増えてきています。時間がない中でやっていることもあり、超簡易診断しかできていませんが....その方法について説明します。 データベースを作成します。 とりあえず 2G くらいにしておきましょう。 データベースが作成…

SQL Server のチューニングについてまとめてみる - その20 - ( きちんとパラメータ化してみる )

本日、大阪に来ています。天気は良くありません。お昼から雨のようですね。 色々なシステムの SQL Server に関するレビューをしていると、まだまだパラメータ化されていないクエリが多数存在します。それによる影響としては、 クエリのパターンが毎回変化す…

SQL Server Management Studio の知っておいたほうが良い機能について挙げてみる - その9 - ( クエリショートカットの使い方 )

INNER JOIN などを使ってクエリを書いているときに、JOIN しているテーブルの内容をちょっと見てみるときに、SELECT 文を書いたりするのは少し面倒です。例えば以下のようなクエリ。 SELECT soh.*, sod.*, p.* FROM Sales.SalesOrderHeader soh INNER JOIN S…

Introduce the function should be aware of " SQL Server Management Studio " - Part 8 - (Let's easier to write a query.)

ブログへのアクセスログを見ていると、海外からのアクセスが少なからず存在します。( 私の書いた記事を Google 翻訳していたログもありました。 ) 下記のブログを英訳してみましょう。これで海外からのアクセスも増えるかな? ryuchan.hatenablog.comDuring …

CLONEDATABASE をお試しするのを忘れていたので、お試ししてみた

そーいえば、お試ししてなかった。 ryuchan.hatenablog.com これはいいですね。「to troubleshoot existing production databases by cloning the schema and metadata without the data」で、統計情報などが取得できるだけでも、実行プランがおかしくなった…

SQL Server Management Studio の知っておいたほうが良い機能について挙げてみる - その8 - ( クエリを少しでも楽に書いてみる )

今日も移動時間を利用して、サクッと記事を投稿します。 SQL Server Management Studio は、クエリを記述する上で便利な機能を多くもっています。今回は、少しでもキーボードを使わずにクエリを記述する方法を紹介します。例えば、データベース名は、オブジ…

行ロックの動作についてお試ししてみる

行単位にロックを獲得するため、下記のようなクエリを発行することがあるかと思います。 SELECT * FROM WideWorldImporters.Sales.OrderLines WITH(XLOCK,ROWLOCK) WHERE OrderID = 10 それでは下記のクエリをSQL Server Management Studio で実行してみまし…

便利な SQL の関数とか、構文とか、その他色々まとめてみる - その13 ( TRIM の自作 ) -

C# などの開発言語でのコーディングでは共通化などを行いますが、クエリでは共通関数化などをあまり見かけません。クエリ、ストアド関連のレビューしていると、下記のようなロジックをよく見かけます。 SET @TempValue = LTRIM(RTRIM(REPLACE..... 少しでも…

MSSQL Tiger Team の SQL Server Performance Monitoring and Baselining を見ながらツールを試してみる

SE の雑記 さんが MSSQL Tiger Team の SQL Server Performance Monitoring and Baselining をツイートされてました。これは楽しそうですね。MSSQL Tiger Team からパフォーマンスモニタリングのためのツール一式が公開されています https://t.co/wDabK9rM3x…

統計情報をみる DBCC SHOW_STATISTICS の使い方について少しだけ説明してみる

過去に少しだけ統計情報に関する記事を書いています。 ryuchan.hatenablog.com ryuchan.hatenablog.com ryuchan.hatenablog.com 今更感はありますが、DBCC SHOW_STATISTICS の使い方について少しだけ説明したいと思います。折角なので、データベースは WideW…

ストライプバックアップをお試ししてみた

夏休み真っ只中、仕事をしなければならないのですが、集中力が途切れたので記事書きますwww データベース容量の見積もりをミスって、容量足りない、バックアップ先の領域も足りない...という経験したことがあると思います。そんな時便利なのがストライプバッ…

『質問に答えてみた』に内容を追加してみた

会議中に少しだけ。下記の記事内容に少し補足します。 ryuchan.hatenablog.com MERGE 文でどのように更新および追加したかを判断する方法です。MERGE 文に OUTPUT $action, Inserted.*,Deleted.* を追加します。また、結果を格納するレイアウトとして下記の…

そろそろ業務で使いそうなため、カラムストアのお勉強...まではいかないものの、少しづつ色々なものをお試してみる

先日、カラムストアのお勉強を始めたのですが、業務で使うようにならないと必要に迫られないこともあり、いまいちやる気がおきません。 ryuchan.hatenablog.com 今日も暑かったので、まずはビール! ビールサーバーほしいなぁ。けど、これ買っちゃうと休みの…

便利な SQL の関数とか、構文とか、その他色々まとめてみる - その12 ( SUM の使い方の工夫 ) -

今年は 10 年以上ぶりにお盆に帰郷します。しかも、車で。ということで車の総点検中です。 今回は SUM 関数の使い方を少し工夫してみたいと思います。Sales.SalesOrderHeader テーブルを使って、TerritoryID 別の数を算出します。下記のクエリを SQL Server …

質問に答えてみた

関東甲信地方は、7 月 28 日に梅雨明けしました。今から本格的な夏が始まりますね、と思いましたが来週はそれほど真夏な感じでもありませんね。 しかし、今日は暑い!午前中から子供とポケモン探しに行きましたが、耐え切れず途中で涼むことに。そして、つい…

『『『 SQL Server 2014 Service Pack 2 is now Available !!! ということなので使ってみる 』 の続き、まずは Performance and Scalability Improvements から書いてみる 』の続き、次に Supportability and Diagnostics Improvements について書いてみる。』 の続きを書いてみる

関東涼しいですね。夏とは思えない気温です。来週もそんなに気温は上がらなそうです。 さて、今回はSQL Server 2014 SP2 のアップデート概要の最終回です。(なんでこうなったのかは不明です。) ryuchan.hatenablog.com ryuchan.hatenablog.com ryuchan.haten…

『『 SQL Server 2014 Service Pack 2 is now Available !!! ということなので使ってみる 』 の続き、まずは Performance and Scalability Improvements から書いてみる 』の続き、次に Supportability and Diagnostics Improvements について書いてみる。

なぜか興味を持った SQL Server 2014 SP2 のアップデートの内容。 ryuchan.hatenablog.com ryuchan.hatenablog.com すべての更新内容に興味が沸いたわけではないのですが、なんとなく全部見てみようかと。 Supportability and Diagnostics Improvements 次は…

『 SQL Server 2014 Service Pack 2 is now Available !!! ということなので使ってみる 』 の続き、まずは Performance and Scalability Improvements から書いてみる

前回は少しだけ SQL Server 2014 SP2 について書いてみました。 ryuchan.hatenablog.com Performance and Scalability Improvements in SQL 2014 SP2 取り上げてなかったものをさらっとみていきましょう。パフォーマンスとスケーラビリティーの改善について…

SQL Server 2014 Service Pack 2 is now Available !!! ということなので使ってみる

先週から今週とかなり忙しく、週末もまともにブログを書けませんでした。最近、見てなかった SQL Server Blog に「SQL Server 2014 Service Pack 2 is now Available !!! 」とあったので、2014 に対して興味はなかったのですが、ちょっとみてみることにしま…

どのデータがどのパーティションに属しているか確認してみる

梅雨明けはまだですが、毎日暑いですね。 今回は、パーティション分割したテーブルのそれぞれのデータがどのパーティションに属しているか確認する方法です。データベースは、WideWorldImporters を使用します。 ryuchan.hatenablog.com テーブルは Sales.Cu…

SQL Server Management Studio の知っておいたほうが良い機能について挙げてみる - その7 - ( 2つの実行プランの比較してみる )

灼熱の日曜日。Cortana さんに今日の気温を聞いてみました。40℃! 別のサイトで確認。35℃。それでも暑い! Cortana さん暑さでダウンでしょうか(笑) 梅雨が終わってしまったような天気です。今週も暑いですね。 今回は非常に地味ですが、実行プランの比較機…

発表されたときはすごいなーと思いながらも、多分業務で使うことはしばらくないだろうなーと思っていたら、いきなり使うことになりそうなので急遽列ストアインデックスについてお勉強を始めてみる

早速お勉強。まず、基本概念から。 列ストア インデックスの説明 SQL Server のインメモリ列ストア インデックスは、列ベースのデータ ストレージと列ベースのクエリ処理を使用して、データを格納および管理します。 列ストア インデックスは、主に一括読み…

新しいサンプルデータベース 『 WideWorldImporters 』 の中身を見てみる

SQL Server のサンプルデータベースといえば、AdventureWorks です。今回、SQL Server 2016 の機能に合わせて WideWorldImporters というサンプルデータベースがリリースされました。 blogs.technet.microsoft.com Wide World Importers is the new sample f…

In-Memory OLTP Performance Demo Available for Download なので、In-Memory OLTP Performance Demo を試してみる

In-Memory っておもしろそうだし、お仕事でも使ったことないのでお試ししてみます。 In-Memory OLTP Performance Demo Available for Download | SQL Server Database Engine Blog デモのサンプルは下記の場所からダウンロードできます。 github.com サンプ…

SQL Server 2016 が GA されたので、とりあえず色々なリンクを掲載してみる

いつもの SQL Server ブログ。 blogs.technet.microsoft.com 日本語でも公開されてる。 www.microsoft.com やっぱり、SEの雑記が一番まとまってる。 blog.engineer-memo.com Developer Edition は無償です。 blog.sqlauthority.com 自習書でお勉強しましょう…

SQL Server を起動してから、まったく使用されていないストアドプロシージャを探しみる

ふと、思いついたので投稿します。使ってない無駄な資源を探すのって、結構やること多いですよね。使用してない(と思われる)ストアドプロシージャを抽出してみたいと思います。下記のクエリを SQL Server Management Studio で実行してみましょう。 SELECT […

SQL Server OS スケジューラーの前に、必要なものあったなと思って記事かいてみる

SQL OS スケジューラーと NUMA、スケジューラーで動作するワーカーの数などが一目で判断できます。 ryuchan.hatenablog.com 下記のクエリを SQL Server Management Studio で実行してみましょう。 SELECT [ノードID] = ons.node_id, [ノードの状態] = ons.no…

SQL Server のチューニングについてまとめてみる - その19 - ( プランがちゃんと再利用されているか確認してみる )

クエリチューニングにおいてインデックスが使われていることに着目することが多いですが、他の重要なことに "プランの再利用" があります。プランの再利用率が悪いと SQL のコンパイルが頻繁に実行されてしまい、その結果 CPU 使用率が高くなってしまいます…

試したいけど怖くてインデックスが作れないときに仮のインデックスを作ってクエリの動作をお試ししてみる

『SQL の実行時間が遅く、調査したらインデックスが不足していた、運用環境にインデックスを追加せねば!けど...インデックスを追加したために他のクエリに影響がでるのが怖い!』ということは、SQL Server の開発に携わっていれば誰しも経験があると思いま…

あー、これ欲しかったと思っていた DBCC コマンドが見つかったので、早速お試ししてみる

世間ではゴールデンウィーク後半の昨日、お休みを取ることができました(やっとで....)。最近は色々な公園に行くことが多く、今回は東京都江東区にある若洲海浜公園に行ってきました。遊具があるのはもちろんのこと、なんとそれ以外にゴルフ、海釣り、サイク…