-
先日、英語版だけではありますが SQL Server 2008 SP2 CTP が公開されました。 SQL Server 2008 SP2 CTP SQL Server 2008 SP2 から SQL Server 2008 R2 の UCP と DAC に対応されるようです。 どのようになるか軽く検証をしてみました。 今回は以下のバージョンのインスタンスを用意しています。 SQL Server 2008 R2 (SSMS も 2008 R2 のものを使用) SQL Server 2008 SP1 SQL Server 2008 SP2 CTP ■UCP に登録 SQL Server...
-
Twitter で SQL Server 2008 R2 CU1 の情報が流れましたのでさっそくスリップストリームインストールができるか検証です。 [Setup.exe] のヘルプには以下のオプションが明記されているので、使えることはコマンドからでも確認できるのですが。 CUSOURCE セットアップ メディアの更新に使用される、抽出された累積した更新ファイルのディレクトリ...
-
Books Online や Web で SQL Server 2008 R2 の新機能の情報を収集していて、SQL Server 2008 R2 でメジャーな新機能以外に いくつかデータベース管理者向けの新機能があったので検証してみました。 以下のブログで新機能がまとめられており、こちらの情報がとても参考になります。 INF: New SQL Server features in SQL Server 2008 R2 – Part 1 INF: New SQL Server features in SQL Server 2008 R2 –Part 2 SQL Server 2008 R2 Express...
-
SQL Server では、読み取り専用データベースを複数のサーバーで共有してスケールアウトする手法があります。 この方法を [ スケーラブルな共有データベース ] と言います。 SQL Server 2008 R2 の BOL にも記載されていますね。 スケーラブルな共有データベースの概要 この設定自体は知っていたのですが、正式な名称を今日初めて知りました…。 今回はその設定方法をまとめてみたいと思います。 ■環境について 今回作成した環境がこちらになります。 [2008R2-SQL-01] ~ [2008R2-SQL-03] の 3 台のサーバーと NAS 上にデータベースを用意しました...
-
久しぶりに SQL Server の勉強を。今日はインスタンスのポート番号の解決について。 今回は以下の環境を使って検証しています。 ポート番号をいろいろと変更してテストを行っていたので、 ■SQL Server が使用するポートのデフォルト設定 SQL Server のインスタンスには既定のインスタンスと名前付きインスタンスの 2 種類があります。 初期設定では、既定のインスタンスの場合は、デフォルトで [TCP 1433] が使用され、名前付きインスタンスの場合は、 [動的ポート] となり使用されるポートは固定されません。 既定のインスタンスに接続する場合は [サーバー名] のみ 名前付きインスタンスに接続する場合は...
-
以前投稿した内容に SQL Server 2008 Express Edition でメンテナンスプランの利用についてコメントをいただきました。 残念ながら SQL Server の Express Edition では、メンテナンスプランが使用できないんですよね。 SQL Server 2008 の各エディションがサポートする機能 また、SQL Server の Express Edition では SQL Server Agent も使用できないため、定期的なジョブを SQL Server 側で 実行することができません。 スキルチャージプログラムで貸与されている環境は Community...
-
SQL Server のクラスタ構成では Is Alive のチェックで定期的な間隔 (デフォルトは 1 分) で SELECT @@servername が実行され、クラスタリソースの起動状況の確認がされます。 Windows Server 2003 上で SQL Server を MSCS で構築した場合は、Is Alive のチェックには、 クラスタサービスのサービスアカウント (ドメインユーザー) が使用されていました。 そのため、SQL Server のログインからクラスタのサービスアカウントを消してしまうとリソースが 起動できなくなります。 Windows Server 2008 の...
-
すこし時間が空いてしまいましたが、件数を絞って削除するパターンで時間を計測してみたいと思います。 今回のテスト用のテーブルには date 型のフィールドを設定しています。 レコード削除時に日付を指定して削除を実行してみます。 - TOP を指定しないで範囲削除 - SET NOCOUNT ON USE [WORK] DELETE FROM [dbo].[Tbl1] WHERE [Col3] BETWEEN '2040-01-01' AND '2100-12-31' - 削除の処理時間 -...
-
SQL Server 2005 以降では DELETE TOP と ROWCOUNT を使用してループの中で指定した件数ずつ 削除することができるようになっています。 # 2000 では SET ROWCOUNT で実施できますね。 一度の DELETE で一括削除した場合と TOP で指定した件数ずつ削除していった場合でどれくらい 処理時間に差がでるか気になったので試してみました。 まずは全件削除をした場合から。 # TRUNCATE でページのビットマップを解除するのが一番早いですが。 今回使用するテーブルのスクリプトは以下になります。 - テストテーブルのスクリプト - USE [WORK...
-
SQL Server のデータベースバックアップですが、完全バックアップではトランザクションログの切り捨てはされません。 トランザクションログの切り捨てを行うためには、 トランザクションログのバックアップ または、復旧モードを [ 単純 ] に 設定する必要があります。 ただし例外が一つだけあり、 初回のデータベースバックアップ時 にはトランザクションログが切り捨てられるようです。 まずはデータを挿入して、トランザクションログが使用されている状態にしてみました。 - トランザクションログの使用状況の取得 - DECLARE @logspace TABLE( DatabaseName sysname...
-
ページの情報を確認するための DBCC コマンドとして、[DBCC PAGE] があります。 このコマンドですが、非公開 DBCC コマンドですのでヘルプを確認するためには以下のコマンドを実行します。 - ヘルプの確認 - DBCC TRACEON(2588) DBCC HELP('PAGE') DBCC TRACEOFF(2588) - ヘルプの内容 - dbcc PAGE ( {'dbname' | dbid}, filenum, pagenum [, printopt={0|1|2|3} ]) プリントオプションの設定は以下のなります...
-
基本的な情報は以下の URL に記載されています。 ページとエクステントのアーキテクチャ Books Online を見ながら SQL Server のデータページの管理領域についてまとめてみたいと思います。 SQL Server のデータページを管理するためのページとして以下の領域があります。 - 管理ページの種類 - File Header Page そのファイルの属性に関する情報が格納されています PFS (Page Free Space) 各ページの割り当て状態、個々のページが割り当て済みかどうか、および各ページの空き領域の量が記録されます。 0%、1 ~ 50%、51 ~ 80%、81...
-
日があいてしまいましたがインデックスの再構築時のロックの状態を見てみたいと思います。 - 再構築中のロックの取得 - -- ロックの取得状態をわかるようにトランザクションを開始 BEGIN TRAN -- インデックスの再構築の実施 ALTER INDEX [PK_Tbl1] ON [dbo].[Tbl1] REBUILD -- ロックの情報を取得 SELECT DB_NAME(resource_database_id) AS [database_name], RTRIM([resource_description])...
-
DBCC IND で確認する違いのその 3 として Books Online に記載されている以下の動作を確認しようと考えていました。 再編成プロセスでは、システム リソースの使用が最小限に抑えられます。 また、再編成は自動的にオンラインで実行されます。 このプロセスでは、ブロッキング ロックは長時間保持されません。 したがって、実行中のクエリまたは更新はブロックされません。 試行錯誤していたのですがどうしてもブロッキングの状態で終わってしまうんですよね…。 READPAST のような動作をするのであれば、DBCC IND で確認できるのではと考えていたのですが。 ロックされているレコードのページだけ...
-
前回は再構成と再構築でページの再利用方法が異なるということを DBCC IND で確認しました。 今回はエクステントの並び替えの違いについて確認をしてみたいと思います。 # 最初にスクリプトを書いてから何日か経ちましたので、今回の投稿には使用するスクリプトを記載してみました。 [前段] - ページ - SQL Server のデータはページに格納されていきます。 1 ページは 8KB で構成されており、ひとつのページに格納できるデータは 8KB となります。 # それ以上格納したい場合は BLOB を使用しますが今回は通常のデータを対象とします。 1 ページに格納できるデータは同一のテーブルのデータになります...