通常は使う機会はないのですが、DB が破損した場合のテストをしたい場合などに便利ですので書いてみたいと思います。
本番環境では絶対に使わないほうがよいと思います。
詳細については DBCC WRITEPAGE: an introduction の記事がとても参考になります。
SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿
通常は使う機会はないのですが、DB が破損した場合のテストをしたい場合などに便利ですので書いてみたいと思います。
本番環境では絶対に使わないほうがよいと思います。
詳細については DBCC WRITEPAGE: an introduction の記事がとても参考になります。
先日、Geo-DR for SQL Server on Windows Azure Infrastructure Services using Log Shipping というドキュメントが公開されました。
この構成ですが、Windows Azure のインフラストラクチャを使用して、ログ配布による DR 構成を作成するというものです。
構成の概略としては、以下のようになります。
SQL Server Agent を使用して、定期的にバックアップを AZCopy で BLOB に保存し、そこからリストアすることで、ログ配布構成をとるというものになります。
この構成を作るための手順を見ていきたいと思います。
今回は、SQL Server 2012 SP1 CU 8 (評価版) を使用しており、オンプレミスの SQL Server がソースデータベース、Windows Azure 上の VM に構築された SQL Server が配信先のデータベースとなるように構成します。
この投稿は、Windows Azure アドベントカレンダー の 3/12 の投稿です。
先日の投稿で、SQL Database で行/ページ圧縮が利用可能になったようです を書きました。
この圧縮が性能にどのような影響を与えるかを単純な処理を例に見ていきたいと思います。
Read the rest of this entry »
SQL Server 2005 移行の Enterprise Edition ではパーティションテーブルの利用が可能となりました。
パーティ初認ぐされたテーブルを使用することで大規模テーブルの大量データをアーカイブ、インデックスの一部メンテナンス、データのレンジによって使用するディスクを分散させる (パーティションをファイルグループで分けた場合) というようなことが可能となります。
SQL Server では SQL Server の評価版から製品版への移行 に記載しているような形でエディションを変更することができます。
エディション変更が可能なマトリックスは サポートされているバージョンとエディションのアップグレード に記載されており、Standard から Enterprise への変更も可能です。
Enterprise Edition に移行したタイミングでパーティショニングされたテーブルを使用したいということがあるかもしれません。
そこで、非パーティションテーブルをパーティションテーブルへ切り替える方法を少しまとめてみたいと思います。
西の某氏 (えろす師匠) がえろす師匠のブログに Windows8.1にSysprepをかけるとストアアプリのタイトルが英語になってしまう? という投稿を書いてくださっています。
この問題は、タスクスケジューラーの [Pre-staged app cleanup] が実行されてしまった後に一般化した Sysprep (sysprep.exe /generalize) を実行するとプロビジョニングされたストアアプリで展開されたストアアプリの UI が英語版になってしまうというものです。
![]()
左が初期状態のスタート画面、右が上記のタスクが実行された後に一般化した Sysprep を実行した後のスタート画面になります。
タスクが動いた後に、一般化した Sysprep を実行し、プロビジョニングされたストアアプリが展開されるとアプリが英語版でインストールされてしまいます。
![]()
![]()
この現象についてちょっと調べてみたことのメモを。
Read the rest of this entry »
twitter 経由で Azure SQL DB to support page and row compression capabilities を知ったのですが、SQL Database で行 / ページ圧縮が使用できるようになったようです。
# 東アジア / 日本 (東) で試したところ両方使えました。
以前、クラスター化インデックスのみのテーブルで COUNT(*) をおすすめしない理由 という投稿を書きました。
クラスター化インデックスのみのテーブルに対して、件数取得をした場合、テーブルスキャンが発生し、全権取得が行われるため、非クラスター化インデックスを設定、または、sys.dm_os_partition_stats から件数を取得したほうが効率的です。
前回の投稿では、テーブルの全件数を取得していましたので、今回の投稿では、単一のテーブルに対して特定の条件にマッチする件数の取得の最適化について考えてみたいと思います。
今回は通常の行ストアを対象にしており、列ストアの場合は考え方が変わってきます。