SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Archive for the ‘SQL Server’ tag

パーティションをスイッチした際の内部テーブルの変化を確認してみる

leave a comment

以前から調べようと思っていたのですが手が出せていなかったので。
SQL Server 2005 以降は Enterprise Edition でパーティショニングが使用できるようになり、アーカイブテーブルへのスイッチが瞬時に実行できるようになりました。
これにより大量のデータを格納しているテーブルに対して、効率よくデータを移動することができます。

パーティションのスイッチではよく

  • ポインターのみを変更することで瞬時にデータをパージする

というようなことを聞くかと思いますが、この内部的な動作が気になったので、内部テーブルのレコードの変化を確認してみました。

Read the rest of this entry »

Written by Masayuki.Ozawa

8月 25th, 2014 at 9:14 pm

Posted in SQL Server

Tagged with

特定の操作を含むクエリ情報を取得

one comment

ちょっとしたメモですが特定の操作を含むクエリ情報の取得のパターンをいくつか。
それっぽい情報は取れていると思いますが、XML の操作あまりわかっていません…。
そのうち 修羅イバーさんか 修羅イバーブログ で取り上げてくれると信じています。

XML の操作については Basic SQL Server XML Querying / Manipulating XML Data in SQL Server が参考になりました。

Read the rest of this entry »

Written by Masayuki.Ozawa

8月 21st, 2014 at 9:09 pm

Posted in SQL Server

Tagged with

Max Server Memory の設定を自動実行されるストアドプロシージャで設定

leave a comment

ストアド プロシージャの自動実行

Azure の仮想マシン上で実行している SQL Server のような環境で Max Server Memory を設定しておりスケールアップをする際に、搭載されているメモリを元に自動的に Max Server Memory を設定することで、スケールアップ時の Max Server Memory の変更を意識しないでもよいかなと思ってサンプルを作ってみました。

ストアドプロシージャの自動実行については ストアド プロシージャの自動実行 を参考にしていただければと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

8月 15th, 2014 at 8:47 am

Posted in SQL Server

Tagged with

リストアの検証のためにデータベースを破損させてみる

leave a comment

SQL Server のデータベースのリストア検証をするためにデータベースを破損させる必要のあることがあります。
データベースを意図的に破損させる方法について軽く書いてみたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

8月 13th, 2014 at 10:51 pm

Posted in SQL Server

Tagged with

SQL Server の修正プログラムが提供されています

one comment

CU や SP ではなく、2014/8 のセキュリティ修正プログラムとして SQL Server の修正プログラムが提供されています。
GDR / QFE が出るのは久しぶりな気がしますね。
2014 年 8 月のマイクロソフト セキュリティ情報の概要
Microsoft Security Bulletin MS14-044 – Important

これらの Update は Windows Update 経由でも適用されますので、SQL Server をインストールされている環境で Windows Update をする場合には、GDR または QFE がダウンロードされてきますので意識しておいた方がよろしいかと.
# 使用している SQL Server のマイナーバージョンによって GDR or QFE のどちらを適用するかが違ってくるようです。

Written by Masayuki.Ozawa

8月 13th, 2014 at 9:17 am

Posted in SQL Server

Tagged with

類似クエリの調査

leave a comment

SQL Server でアドホッククエリを頻繁に実行している場合、類似クエリが複数キャッシュされている状態となり、メモリを効率よく使用していない状態となることがあります。

今回の投稿では類似クエリの調査について少しまとめてみたいと思います。

詳細について クエリおよびクエリ プラン ハッシュを使用した類似クエリの検索およびチューニング を。

Read the rest of this entry »

Written by Masayuki.Ozawa

8月 7th, 2014 at 9:14 pm

Posted in SQL Server

Tagged with

ワークグループ環境の仮想マシンでデータベースミラーリングを構築時に証明書を使用しないエンドポイントの設定で試行錯誤

2 comments

SQL Server 2012 以降では AlwaysOn 可用性グループが実装され、これによりデータベースミラーリングは将来のバージョンの SQL Server では削除予定の機能となりました。
データベース ミラーリング (SQL Server)

ただし、AlwaysOn については Enterprise Edition/ Active Directory が必要となるため、

  • ワークグループ環境
  • Standard Edition × 2 (プリンシパル / ミラー用)
  • Express Edition (監視サーバー用)

の構成で、ミラーリングを組まざるを得ないこともあるかと思います。

Azure の仮想マシン (Azure VM / VIrtual Machine) でデータベースミラーリングを組む方法としては チュートリアル:Azure で高可用性を実現するデータベース ミラーリング があります。
このチュートリアルでは証明書を使用したエンドポイントへの接続を行っていますが、証明書を使用した場合は、
How to replace expired certificates used in database mirroring
SQL Yoga : Certificate Expired, Mirroring Stopped
データベース ミラーリング エンドポイントで発信接続に証明書を使用できるようにする (Transact-SQL)
に記載されているように証明書の有効期限を意識する必要があるかと思います。
# デフォルトでは 1 年で有効期限が切れるかと。

証明書を使用しないエンドポイントへの接続としては

  • 同一のユーザー名 / パスワードのユーザーで SQL Server のサービスを起動

し、エンドポイント間の接続を行う方法があるかと思います。
こちらはチュートリアルには記載されていない方法となりますが、実際の環境ではこちらで運用されていることが多いかと。
組み方にもよるかもしれませんが、Azure の仮想マシン上に SQL Server 2014 をインストールした環境で同一のユーザー名 / パスワードで起動している SQL Server 間でミラーリングを組む際に試行錯誤する箇所があったのでメモとして。

Read the rest of this entry »

Written by Masayuki.Ozawa

7月 30th, 2014 at 7:23 pm

Posted in SQL Server

Tagged with

WHERE 付きのカウントを早くする方法を考えてみる

leave a comment

以前、クラスター化インデックスのみのテーブルで COUNT(*) をおすすめしない理由 という投稿を書きました。
クラスター化インデックスのみが設定されているテーブルに対しての COUNT(*) はテーブルスキャンが発生してしまうため、非クラスター化インデックスを設定して、非クラスター化インデックススキャンまたは、sys.dm_db_partition_stats を使用してテーブル全体の件数 (概算件数) を取得するという内容です。
この投稿はテーブル全体の件数を取得する際の方法でしたので、今回の投稿では WHERE で条件を絞った場合の件数取得について少し考えてみようかと。

Read the rest of this entry »

Written by Masayuki.Ozawa

7月 29th, 2014 at 11:49 pm

ユーザー定義関数を使用する場合に気を付けておきたいこと

leave a comment

先日、大阪で開催された db tech showcase 2014 の [B24] Oracle から SQL Server システム移行の勘所 でも話にあったようですが、ユーザー定義関数を使用する場合に気を付けておきたいことをメモとして。

Read the rest of this entry »

Written by Masayuki.Ozawa

7月 29th, 2014 at 7:14 pm

Posted in SQL Server

Tagged with

SQL CLR を調べようとしたときの参考

leave a comment

ちょっと SQL CLR を調べる必要があったので、その時に参考にしたサイトのメモを。

CLR (共通言語ランタイム) 統合によるデータベース オブジェクトの構築
マネージ コードでの SQL Server オブジェクトの作成
CLR データベース オブジェクトを使用する方法
Using CLR With SQL Server 2012

開発には Visual Studio 2013 Express を使用することができます。
SSDT and Visual Studio versions
Microsoft Visual Studio Express 2013 for Windows Desktop

デフォルトでは SQL Server オブジェクトブラウザーが SQL Server 2014 に対応していないので、[ツール] → [拡張機能と更新プログラム] から SSDT を更新するとよいかと。
# SQL Server 2014 に対応した SQL CLR は SQL Server 2012 同様、.NET Framework 4.0 で開発すればよいので、オブジェクトブラウザーを使用しないのであれば、デフォルトの状態でも開発できますが。

Written by Masayuki.Ozawa

7月 29th, 2014 at 9:21 am

Posted in SQL Server

Tagged with ,