Quantcast
Channel: Microsoft SQL Server Japan Support Team Blog
Viewing all 293 articles
Browse latest View live

IaaS上のSQL Server の日本語化手順

$
0
0

 

Microsoft SQL Server/Microsoft Azure SQL Database サポートチーム
サポート エンジニア 清水 磨
サポート エスカレーション エンジニア 荒井 太郎
プレミア フィールド エンジニア 松本 吉弘

Azure ギャラリーイメージより、SQL Server が含まれた仮想マシンをデプロイすることが可能ですが、現在は英語版のみの提供となっています。
そのため、今回はSQL Server を日本語化する手順をご紹介します。

大まかな流れは以下の通りです。以下ではSQL Server 2014を例にご説明いたしますが、SQL Server 2012でも手順はほぼ変わりません。
*******************************************
A. SQL Server のアンインストール
B. OSのロケール設定を日本語に変更
C. 日本語のSQL Server 2014 Evaluation Editionを用いて、日本語版のSQL Server をインストール
D. SQL Server IaaS Agent 拡張機能の設定
*******************************************

順にご説明致します。

A. SQL Server のアンインストール
===============================
まず以下のURLに従い、既存の英語版SQL Server をアンインストールします。

SQL Server の既存のインスタンスのアンインストール (セットアップ)
https://msdn.microsoft.com/ja-jp/library/ms143412(v=sql.120).aspx

image

// 一部抜粋
********
1. アンインストール プロセスを開始するには、コントロール パネルで [プログラムと機能] をクリックします。

2. [Microsoft SQL Server 2014] を右クリックし、[アンインストール] を選択します。次に、[削除] をクリックします。これにより、SQL Server インストール ウィザードが起動します。

セットアップ サポート ルールが実行され、コンピューターの構成が確認されます。続行するには、[次へ] をクリックします。

3. [インスタンスの選択] ページのドロップダウンボックスを使用して、削除する SQL Server インスタンスを指定するか、SQL Server の共有機能と管理ツールだけを削除するオプションを指定します。続行するには、[次へ] をクリックします。

4. [機能の選択] ページで、指定した SQL Server インスタンスから削除する機能を指定します。

削除ルールが実行され、操作を正常に完了できることが確認されます。

5. [削除の準備完了] ページで、アンインストールされるコンポーネントおよび機能の一覧を確認します。 [削除] をクリックしてアンインストールを開始します。

6. 最後の SQL Server インスタンスをアンインストールした直後は、SQL Server に関連付けられたその他のプログラムがまだ [プログラムと機能] のプログラムの一覧に表示されています。ただし、[プログラムと機能] を閉じ、次に [プログラムと機能] を開いたときには、プログラムの一覧は更新され、実際にインストールされているプログラムのみが表示されます。
********

B. OSのロケール設定を日本語に変更
===============================
日本語版SQL Server を英語版OSにインストールする場合、事前にOSの言語設定を変更する必要があります。
具体的には以下の設定です。

・オペレーティング システムのユーザー インターフェイス設定
・オペレーティング システムのユーザー ロケール設定
・システム ロケール設定

以下のURLよりダウンロードできるドキュメントにOS日本語化のスクリーンショット付き手順がございます。
必要に応じてご確認下さい。

12: Microsoft Azure SQL Server の活用(IaaS 環境における設定や運用のベストプラクティス)
http://www.microsoft.com/click/services/Redirect2.ashx?CR_EAC=300173769
+ [3.2 OS の日本語化] の章をご確認ください。

以下URLでも紹介されておりますので、こちらも必要に応じてご確認いただけますと幸いです。

SQL Server のローカル言語版
https://msdn.microsoft.com/ja-jp/library/ee210665(v=sql.120).aspx

 

C. 日本語のSQL Server 2014 Evaluation Editionを用いて、日本語版のSQL Server をインストール
===============================
OSの言語設定を日本語に変更後、日本語のSQL Server 2014 Evaluation Editionをインストールします。
この際、ギャラリーの英語版SQL Server に同梱されているSQL Server のプロダクトキーを、日本語版SQL Server のインストール時に設定していただき、作業は完了となります。

インストール ウィザードからの SQL Server 2014 のインストール (セットアップ)
https://msdn.microsoft.com/ja-jp/library/ms143219(v=sql.120).aspx

1. 下記URLより、IaaSのマシン上に日本語版のSQL Server 2014 をダウンロードします。

評価版のダウンロード: Microsoft SQL Server 2014 SP1
https://technet.microsoft.com/ja-jp/evalcenter/dn205290.aspx

この際、[プロダクト キー] ページで、SQL Server 2014 SP1 ISOを選択してください。
また、ダウンロードするためにはマイクロソフト アカウントが必要になります。

clip_image002

ダウンロード後には、該当ISOファイルをマウントし、DVDドライブに読み込ませます。

clip_image003

2. IaaS上のマシンにて、C:\SQLServer_12.0_Full\x64\DefaultSetup.ini を開きます。

3. PIDに指定されているプロダクトキーを確認します。

// DefaultSetup.ini
********************
;SQL Server 2014 Configuration File
[OPTIONS]
PID="XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"
PCUSOURCE=".\PCU"
********************
※ XXXXXの部分が実際のプロダクトキーになります。

4. 日本語版のSQL Server 2014のインストールを開始します。(既定では、Eドライブにマウントされていますので、ここからセットアップを開始します。)
この際、[プロダクト キー] ページで、該当プロダクトキーを入力することで、EditionをEvaluationから変更できます。

image

// 補足情報
SQL Server 2012 の場合には、該当の設定ファイルパスが C:\SQLServer_11.0_Full\x64\DefaultSetup.ini になります。
また、SQL Server 2012 の場合、下記の SP1 のダウンロードサイトよりメディアを入手することが可能です。

Microsoft® SQL Server® 2012 Service Pack 1 (SP1)
https://www.microsoft.com/ja-jp/download/details.aspx?id=35575
+ SQLServer2012SP1-FullSlipstream-JPN-x64.iso

D. SQL Server IaaS Agent 拡張機能の設定
===============================
SQL Server IaaS Agent 拡張機能を使用している場合には、対象のサービスで使用するログインを SQL Server に作成する必要があります。
管理者権限のアカウントで、SQL Server へ接続し、下記のクエリを実行することで、サービス SID に紐づいたログイン情報を作成することが可能です。

*****
USE [master]
GO
CREATE LOGIN [NT Service\SQLIaaSExtension] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
GO
ALTER SERVER ROLE [sysadmin] ADD MEMBER [NT Service\SQLIaaSExtension]
GO
*****

SQL Server IaaS Agent 拡張機能については、下記の公開情報にご参考にしていただければ幸いです。

SQL Server IaaS Agent 拡張機能
https://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-sql-server-agent-extension/


2016 年 2 月 SQL Server 最新モジュール

$
0
0

2016 年 2月 23日 時点の SQL Server 最新モジュールです。

SQL Server 2000 は 2013 年 4 月 9 日に延長サポートが終了しました。長らくのご愛用ありがとうございました。
SQL Server 2008 は 2014 年 7 月 8 日にメインストリームサポートが終了しました。

 

サービス
パック

更新プログラム

バージョン

リリース年月

SQL Server 2014

SP1

KB 3130926 (CU5)

12.00.4439.1

2016/2

メインストリームサポート

SQL Server 2012

SP3

無し

11.0.6020.1

2015/11

メインストリームサポート

SQL Server 2008 R2

SP3

無し

10.50.6000.34

2014/9

延長サポート

※2014年7月8日にメインストリームサポートが終了しました。

SQL Server 2008

SP4

無し

10.0.6000.29

2014/10

延長サポート

※2014年7月8日にメインストリームサポートが終了しました

SQL Server 2005

SP4

KB 2598903 (OD)

KB 2716427 Reporting Services (MS12-070)

9.00.5295

9.00.5324

2011/8

2012/10

延長サポート
(2016/4/12 終了)

RTM : Release To Manufacturing (製品出荷版)
SP : Service Pack (サービスパック)
CU : Cumulative Update (隔月リリースの累積更新プログラム)
OD : On-Demand (オンデマンドリリースの累積更新プログラム)

SQL Server の更新プログラムの詳細については、SQL Server の更新プログラムを参照して下さい。

メインストリームサポート、延長サポートについては、マイクロソフトサポートライフサイクルを参照して下さい。

用語解説: 復旧、復元、修復

$
0
0

神谷 雅紀
Escalation Engineer

今回は、混同しやすい用語である「復旧」「復元」「修復」について解説します。

復旧

復旧 (英語では recover, recovery) は、データベース開始時に実行されるトランザクションのロールフォワード、ロールバックなどの処理を表します。

SQL Server は、多くのデータベースシステムと同様に、ログ先行書き込み (Write-Ahead-Logging, WAL) を行います。データベースファイルへの書き込みは、必ずトランザクションログファイルへの書き込みが先行されます。トランザクション完了時、トランザクションログへの書き込みは必ず同期されます。言い換えれば、クライアントが COMMIT を発行しても、トランザクションログへの書き込みが終わらないと、クライアントへは制御が返されません。一方、データファイルへの書き込みは非同期です。そのため、データベースクローズ時にデータファイルの内容が最新の状態であるとは限りません。データベース開始時には、トランザクションログを使用して、データファイルをトランザクションとして整合性のとれた最新の状態にするために、未完了トランザクションをロールバックしたり、データファイルへ未反映のトランザクションをロールフォワードしたりします。つまり復旧が必要になります。

データベースの開始は、SQL Server の起動時やデータベースのアタッチ時に実行されたり、WITH RECOVERY の指定された RESTORE DATABASE または RESTORE LOG ステートメントの実行時に実行されます。データベースが開始されると、Errorlog ファイルには “Starting up <database name>” と記録されます。

復元

復元 (restore, restoration) は、RESTORE ステートメントによってバックアップデータからデータベースを作成したり、復元中 (restoring) の状態にあるデータベースにトランザクションログを適用することを指します。

修復

修復 (repair) は、SQL Server のデータベースとして論理的に正常ではない状態になってしまったデータベースを、データベースとして使用可能な状態に戻すことを指します。

通常は、復旧に失敗し、データベースが未確認 (suspect) の状態となってしまったものの、そのデータベースのバックアップがなく、バックアップからデータベースを復元できない状況の場合に、最後の手段として、DBCC CHECKDB に修復オプションを指定することで修復します。

 

データベースの状態遷移

 

image

Query Performance Insight の設定方法

$
0
0

Microsoft SQL Server/Microsoft Azure SQL Database サポートチーム
サポート エンジニア 清水 磨

[概要]
SQL Database では Query Performance Insight と呼ばれる機能が新しく追加されました。Query Performance Insight では、自動的にデータベース リソース(DTU)の詳細な消費量やCPU負荷の高いクエリ、クエリの詳細を保存、確認することができるようになり、よりデータベース パフォーマンスのトラブルシューティングが実施しやすくなりました。これらは内部的にSQL Server 2016 から新しく実装されているクエリ ストアという機能を用いており、その結果をAzure ポータル上からグラフィカルに確認できる機能になります。
今回はこのQuery Performance Insight の設定方法についてご案内します。

[前提事項]
・V12サーバーでのみ、使用可能です。
・Query Performance Insight(クエリ ストア) の有効化を行っていない場合には、データベース単位で手動で設定する必要があります。

・リソース消費上位クエリおよびチャートを表示するには、リーダー、所有者、共同作成者、SQL DB の共同作業者、または SQL Server の共同作業者の権限が必要です。
・クエリ テキストを表示するには、所有者、共同作成者、SQL DB の共同作業者、または SQL Server の共同作業者の権限が必要です。

※権限の確認、設定は、Azure のロールベースのアクセス制御 の 「Azure ポータルを使用したアクセス権の管理」の手順で行います。

[設定方法]
Azure ポータル、および、クエリによる設定方法をご説明します。

// Azure ポータルからの設定方法
———————————————-
1. Azure ポータルより該当データベースを開きます。
以下では AdventureWorkLT というサンプルデータベースを基に説明します。

Azure Portal
https://portal.azure.com/

image

2. 画面中部にあるQuery Performance Insight のアイコン、もしくは [すべての設定] から [機能] – [Query Performance Insight] の項目を選択します。
imageimage

3. 既定ではクエリストアが設定されていないため、まず以下の警告を選択します。
image

上記警告を選択すると以下の有効化ボタンが表示されますので、選択します。
image

上記の後、設定が有効になりますが、パフォーマンス情報を取得するまでは、利用することができません。そのため、しばらく待機し、普段から行っている処理を実施します。
image

image

 

// その他の設定方法
———————————————-
上記 Azure ポータルからの設定以外では、クエリによる設定方法とSQL Server Management Studio を用いた方法があります。

A. クエリによる設定方法
******************************
該当データベースに対して以下のようにクエリを実行します。
————————
ALTER DATABASE AdventureWorksLT SET QUERY_STORE = ON;
————————

B. SQL Server Management Studio
*****************************************
最新の SQL Server 2016 Management Studio CTP でも設定を行うことができます。
該当データベースのプロパティを開き、[Query Store] – [Operation Mode] を Read Writeに変更します。
image

 
[確認方法]
クエリに関するパフォーマンスデータがクエリストアに格納されると、ポータル上から以下のようなグラフが確認できるようになります。
以下のグラフではDTU使用率が100%近くになっている時間帯が確認できます。また、該当時刻にクエリ ID:87が実行されていることが分かります。  
image

クエリのごとのパフォーマンス統計も取得されており、以下ではクエリ ID:87 が非常に多く実行されていることが確認できます。  
image

クエリ ID:87 は以下のSELECT 文であることが、ここから特定できます。   
image

SQL Server 2016 Management Studio CTP を利用することでさらに詳細なデータを見ることも可能です。
例えば、クエリごとの詳細な処理時間や実行プランといった情報です。もし実行プランが変化した場合には古い実行プランの情報は蓄積され、必要に応じて確認、そのプランを強制的に使用させることも可能になります。(いわゆるプランガイドと同等の機能です。)

該当サーバーへ接続します。
image

オブジェクトエクスプローラーより、[Databases] – [該当データベース] – [Query Store]まで展開します。
配下には4種類のビューが用意されており、リソース消費量が多いクエリ(Top Resource Consuming Queries)などを簡単に表示することが可能です。
image

Top Resource Consuming Queriesのビューの画面です。
image

実行プランも簡単に確認できます。
image

 

[参考情報]
Azure SQL Database Query Performance Insight
https://azure.microsoft.com/ja-jp/documentation/articles/sql-database-query-performance/

Monitoring Performance By Using the Query Store
https://msdn.microsoft.com/library/dn817826.aspx

SQL Server Management Studio
https://msdn.microsoft.com/en-us/library/mt238290.aspx

上記からは英語版のSQL Server Management Studioのみ、ダウンロード可能です。
もし、日本語版をご利用されたい方は、以下のURLより、SQL Server 2016 日本語版をダウンロードしていただき、インストールしてください。

SQL Server 2016 Community Technology Preview 3.3
https://www.microsoft.com/ja-jp/evalcenter/evaluate-sql-server-2016

Index Advisorを用いたパフォーマンス チューニング方法

$
0
0

Microsoft SQL Server/Microsoft Azure SQL Database サポートチーム
サポート エンジニア 清水 磨

[概要]
Index Advisor はSQL Databaseに新しく追加された機能の1つで、SQL データベースの使用パターンを分析し、現在のクエリパフォーマンスを向上できる推奨インデックスを提供します。これにより、ユーザーはデーターベースに関する深い知識がなくとも、インデックスを用いたチューニングが可能になります。また、推奨インデックスを自動的に実装することも設定可能であり、V12サーバーをご利用のお客様は、Azureポータル上からインデックスの追加を数クリックで実現可能になりました。
今回はこの Index Advisor の使用方法についてご案内します。

 

[前提状況]
・V11サーバー、V12サーバーそれぞれで使用可能です。ただし、Azure ポータルサイトからのインデックス操作はV12でのみ、サポートされています。
・推奨インデックスの自動作成、削除を有効化するためには、クエリストアを有効化しておく必要があります。

・推奨インデックスを表示するには、リーダー権限と SQL DB の共同作成者権限が必要です。
・インデックスの作成またはドロップおよびインデックス作成のキャンセルなどのアクションを実行するには、所有者権限と SQL DB の共同作成者権限が必要です。
※権限の確認、設定は、Azure のロールベースのアクセス制御 の 「Azure ポータルを使用したアクセス権の管理」の手順で行います。

 

[設定方法] 
1. Azure ポータルにサインインします。
2. [参照] – [SQL データベース] の順にクリックし、ご使用のデータベースを選択します。
3. 画面中段にある[インデックス アドバイザー]のアイコンを選択する、もしくは[すべての設定] – [Index Advisor] の順にクリックし、[インデックス アドバイザー]の項目を選択します。
clip_image002clip_image004

なお、データベース作成直後などは推奨されるインデックスは表示されません。これは、[概要]に記載した通り、該当データベースにおけるクエリパターンがある程度、蓄積される必要があるためです。
目安として約1週間程度、またこの期間内に一貫性のある処理を実行することで推奨インデックスが表示されやすくなります。

// インデックスが表示されない場合
clip_image006

// インデックスが表示された場合
パフォーマンスに与える影響ごとに4つのカテゴリに分かれて表示されます。
clip_image008

4. 推奨されたインデックスを選択し、[適用]を選択することで適用することができます。[インデックス操作] からはインデックスの作成状況も確認できます。
また、推奨インデックスを無視することや、スクリプト化することが可能です。
clip_image010

 

5. Index Advisor を使用してインデックスを作成した場合、パフォーマンスへの悪影響が見つかるとインデックスは自動的に元に戻されます。
[インデックス操作] から該当のインデックスを選択し、手動で行うことも可能です。
clip_image012

 

6. またIndex Advisor が自動的にインデックス作成、削除を行うように設定することも可能です。(クエリストアの有効化が必要)
clip_image014

[注意事項]
以下の場合には推奨インデックスが表示されません。
・十分な利用履歴がない場合。例えば、データベースが最近作成されたり、しばらくデータベースが使われていない場合です。
・該当データベースにて、スキーマや実行されるクエリ内容に大幅な変更があった場合。
・該当データベースにて必要なインデックスがすでに作成済みの場合。

 

[補足情報]
- アーキテクチャについて
Index Advisor は該当データベースの使用パターンを学習し、機械学習のモデルによって、推奨されるインデックスを提案します。Index Advisorは数日前の使用パターンを基に推奨インデックスを提案するため、データベースの作成後、ある程度、処理を実行し、使用パターンを蓄積させる必要があります。
また、Index Advisor は世界中のデータベースにおける使用パターンを基に、様々なパターンをAzure Machine Learningにより機械学習させ、日々、そのモデルの精度を向上させています。ユーザーによって向上されるサービスであるため、SQL Databaseのユーザーには無償でIndex Advisorが提供されています。なお、Index Advisorのための計算処理は、SQL Database外にて行われています。
上記のため、処理内容やスキーマが変更された場合でも、Index Advisorは継続的にデータベースを監視しつづけているため、新たな情報が収集された後、必要に応じて推奨インデックスを提案します。

 

- インデックス作成時の動作
インデックスの作成を行った場合、以下の流れでインデックスの作成が行われます。
推奨インデックスがすぐに作成されない場合もありますが、以下のいずれかで時間がかかっていることが考えられるため、必要に応じて[インデックスの操作]を確認します。

1. 該当インデックスにおけるパフォーマンスのベースラインを収集します。(”Pending” の状態になります)
2. インデックスを作成します。(”実行しています”の状態になります)
3. 再度、該当インデックスにおけるパフォーマンスのベースラインを収集します。(”Verifying” の状態になります)
4. もし、該当インデックスが悪影響を及ぼした場合、自動的に元に戻します。(”revering” の状態になります)
5. インデックス操作が完了し、”成功”, ”復元”, もしくはエラーのステータスを返します。

 

[参考情報]
SQL Database Index Advisor
https://azure.microsoft.com/ja-jp/documentation/articles/sql-database-index-advisor/

2016 年 3 月 SQL Server 最新モジュール

$
0
0

2016 年 3月 22日 時点の SQL Server 最新モジュールです。

SQL Server 2000 は 2013 年 4 月 9 日に延長サポートが終了しました。長らくのご愛用ありがとうございました。
SQL Server 2008 は 2014 年 7 月 8 日にメインストリームサポートが終了しました。

 

サービス
パック

更新プログラム

バージョン

リリース年月

SQL Server 2014

SP1

KB 3130926 (CU5)

12.00.4439.1

2016/2

メインストリームサポート

SQL Server 2012

SP3

KB 3137746 (CU2)

11.0.6523.1

2016/3

メインストリームサポート

SQL Server 2008 R2

SP3

無し

10.50.6000.34

2014/9

延長サポート

※2014年7月8日にメインストリームサポートが終了しました。

SQL Server 2008

SP4

無し

10.0.6000.29

2014/10

延長サポート

※2014年7月8日にメインストリームサポートが終了しました

SQL Server 2005

SP4

KB 2598903 (OD)

KB 2716427 Reporting Services (MS12-070)

9.00.5295

9.00.5324

2011/8

2012/10

延長サポート
(2016/4/12 終了)

RTM : Release To Manufacturing (製品出荷版)
SP : Service Pack (サービスパック)
CU : Cumulative Update (隔月リリースの累積更新プログラム)
OD : On-Demand (オンデマンドリリースの累積更新プログラム)

SQL Server の更新プログラムの詳細については、SQL Server の更新プログラムを参照して下さい。

メインストリームサポート、延長サポートについては、マイクロソフトサポートライフサイクルを参照して下さい。

SQL Server の最新モジュール情報 (まとめページ)

$
0
0

SQL Server の最新モジュール情報ページです。各リンクにそれぞれ詳細情報がございます。

 

2016 年 3 月 https://blogs.msdn.microsoft.com/jpsql/2016/03/22/2016-3-sql-server/
2016 年 2 月 http://blogs.msdn.com/b/jpsql/archive/2016/02/29/2016-2-sql-server.aspx
2016 年 1 月 http://blogs.msdn.com/b/jpsql/archive/2016/01/26/2016-1-sql-server.aspx
2015 年 12 月 http://blogs.msdn.com/b/jpsql/archive/2016/01/26/2015-12-sql-server.aspx
2015 年 11 月 http://blogs.msdn.com/b/jpsql/archive/2016/01/26/2015-11-sql-server.aspx
2015 年 10 月 http://blogs.msdn.com/b/jpsql/archive/2016/01/26/2015-10-sql-server.aspx
2015 年 9 月 http://blogs.msdn.com/b/jpsql/archive/2015/10/08/2015-9-sql-server.aspx
2015 年 8 月 http://blogs.msdn.com/b/jpsql/archive/2015/09/04/2015-8-sql-server.aspx
2015 年 7 月 http://blogs.msdn.com/b/jpsql/archive/2015/09/04/2015-7-sql-server.aspx
2015 年 6 月 http://blogs.msdn.com/b/jpsql/archive/2015/06/29/2015-6-sql-server.aspx
2015 年 5 月 http://blogs.msdn.com/b/jpsql/archive/2015/05/20/2015-5-sql-server.aspx
2015 年 4 月 http://blogs.msdn.com/b/jpsql/archive/2015/05/20/2015-4-sql-server.aspx
2015 年 3 月 http://blogs.msdn.com/b/jpsql/archive/2015/03/19/2015-3-sql-server.aspx
2015 年 2 月 http://blogs.msdn.com/b/jpsql/archive/2015/02/23/2015-2-sql-server.aspx
2015 年 1 月 http://blogs.msdn.com/b/jpsql/archive/2015/01/23/2015-1-sql-server.aspx
2014 年 12 月 http://blogs.msdn.com/b/jpsql/archive/2015/01/13/2014-12-sql-server.aspx
2014 年 11 月 http://blogs.msdn.com/b/jpsql/archive/2015/01/13/2014-11-sql-server.aspx
2014 年 10 月 http://blogs.msdn.com/b/jpsql/archive/2014/10/07/2014-10-sql-server.aspx
2014 年 9 月 http://blogs.msdn.com/b/jpsql/archive/2014/09/29/2014-9-sql-server.aspx
2014 年 8 月 http://blogs.msdn.com/b/jpsql/archive/2014/08/08/2014-8-sql-server.aspx
2014 年 7 月 http://blogs.msdn.com/b/jpsql/archive/2014/07/01/2014-7-sql-server.aspx
2014 年 6 月 http://blogs.msdn.com/b/jpsql/archive/2014/06/13/2014-6-sql-server.aspx
2014 年 5 月 http://blogs.msdn.com/b/jpsql/archive/2014/05/20/2014-5-sql-server.aspx
2014 年 4 月 http://blogs.msdn.com/b/jpsql/archive/2014/04/22/2014-4-sql-server.aspx
2014 年 3 月 http://blogs.msdn.com/b/jpsql/archive/2014/04/09/2014-3-sql-server.aspx
2014 年 2 月 http://blogs.msdn.com/b/jpsql/archive/2014/02/21/2014-2-sql-server.aspx
2014 年 1 月 http://blogs.msdn.com/b/jpsql/archive/2014/02/05/2014-1-sql-server.aspx
2013 年 12 月 http://blogs.msdn.com/b/jpsql/archive/2013/12/18/2013-12-sql-server.aspx
2013 年 11 月 http://blogs.msdn.com/b/jpsql/archive/2013/11/19/2013-11-sql-server.aspx
2013 年 10 月 http://blogs.msdn.com/b/jpsql/archive/2013/10/29/2013-10-sql-server.aspx
2013 年 9 月 http://blogs.msdn.com/b/jpsql/archive/2013/09/18/2013-9-sql-server.aspx
2013 年 8 月 http://blogs.msdn.com/b/jpsql/archive/2013/08/28/2013-8-sql-server.aspx
2013 年 7 月 http://blogs.msdn.com/b/jpsql/archive/2013/07/26/2013-7-sql-server.aspx
2013 年 6 月 http://blogs.msdn.com/b/jpsql/archive/2013/06/14/2013-6-sql-server.aspx
2013 年 5 月 http://blogs.msdn.com/b/jpsql/archive/2013/05/28/2013-5-sql-server.aspx
2013 年 4 月 http://blogs.msdn.com/b/jpsql/archive/2013/04/25/2013-4-sql-server.aspx
2013 年 3 月 http://blogs.msdn.com/b/jpsql/archive/2013/03/25/2013-3-sql-server.aspx
2013 年 2 月 http://blogs.msdn.com/b/jpsql/archive/2013/02/22/2013-2-sql-server.aspx
2013 年 1 月 http://blogs.msdn.com/b/jpsql/archive/2013/01/25/2013-1-sql-server.aspx
2012 年 12 月 http://blogs.msdn.com/b/jpsql/archive/2012/12/19/2012-12-sql-server.aspx
2012 年 11 月 http://blogs.msdn.com/b/jpsql/archive/2012/11/26/2012-11-sql-server.aspx
2012 年 10 月 http://blogs.msdn.com/b/jpsql/archive/2012/10/26/2012-10-sql-server.aspx
2012 年 09 月 http://blogs.msdn.com/b/jpsql/archive/2012/09/25/2012-9-sql-server.aspx
2012 年 08 月 http://blogs.msdn.com/b/jpsql/archive/2012/08/30/2012-8-sql-server.aspx

なお、SQL Server Compact Editionについては、こちら をご確認下さい。

2016 年 4 月 SQL Server 最新モジュール

$
0
0

2016 年 4月 19日 時点の SQL Server 最新モジュールです。

SQL Server 2005 は 2016 年 4 月 12 日に延長サポートが終了しました。長らくのご愛用ありがとうございました。
SQL Server 2008 は 2014 年 7 月 8 日にメインストリームサポートが終了しました。

サービス
パック

更新プログラム

バージョン

リリース年月

SQL Server 2014

SP1

KB 3144524 (CU6)

12.0.4449.1

2016/4

メインストリームサポート

SQL Server 2012

SP3

KB 3137746 (CU2)

11.0.6523.1

2016/3

メインストリームサポート

SQL Server 2008 R2

SP3

無し

10.50.6000.34

2014/9

延長サポート

※2014年7月8日にメインストリームサポートが終了しました。

SQL Server 2008

SP4

無し

10.0.6000.29

2014/10

延長サポート

※2014年7月8日にメインストリームサポートが終了しました

 

RTM : Release To Manufacturing (製品出荷版)
SP : Service Pack (サービスパック)
CU : Cumulative Update (隔月リリースの累積更新プログラム)
OD : On-Demand (オンデマンドリリースの累積更新プログラム)

SQL Server の更新プログラムの詳細については、SQL Server の更新プログラムを参照して下さい。

メインストリームサポート、延長サポートについては、マイクロソフトサポートライフサイクルを参照して下さい。


Microsoft Azure SQL Database パフォーマンス チューニング (第1回)

$
0
0

Microsoft SQL Server/Microsoft Azure SQL Database サポートチーム

サポート エスカレーション エンジニア 高原 伸城

 

皆さん、こんにちは。 Microsoft SQL Server/Microsoft Azure SQL Database サポートチーム です。

今回は、Microsoft Azure SQL Database (以下 MASD) のパフォーマンス チューニング手法について紹介します。

 

MASD 上のデータベースに対して、アプリケーション から クエリを実行し、コマンドタイムアウトが発生したという現象についてお問い合わせを頂くことがあります。

コマンドタイムアウトが発生した場合は、一般的に、以下の項目について確認する必要があります。

 

[確認項目]

1) コマンドタイムアウトで失敗したクエリの特定

2) 該当クエリの実行プランの確認

3) ブロッキングの発生有無

4) リソースの使用状況 (パフォーマンス レベル (DTU) 以上の処理が実行されていないかの確認)

 

そして、コマンドタイムアウトが発生している状況に応じた対処方法を検討する必要があります。

しかしながら、コマンドタイムアウトが発生したクエリを特定し、クエリのチューニングを実施することは、一般的に時間を要する作業となります。

そのため、今回のブログでは、コマンドタイムアウトが多発し、即座に問題を緩和させる必要がある場合 に、まずは試して欲しい対処方法を紹介します。

※ 一般的に、データセンター側の問題でクエリの処理時間が著しく低下する現象は発生しないため、今回は確認項目から省いています。

 

[対処方法]

1) アプリケーション側で指定しているコマンドタイムアウト値を延ばす。

 

+ 参考情報

SqlCommand クラス

SqlCommand.CommandTimeout プロパティ

EntityCommand クラス

EntityCommand.CommandTimeout プロパティ

 

2) インデックスの統計情報を更新する。

コマンドタイムアウトが発生しているクエリが参照しているテーブル上に存在するインデックスの統計情報を最新の状態に更新することで、最適なクエリの実行プランが選択されるようになり、クエリのパフォーマンスが向上できることが期待できます。

そして、”UPDATE STATISTICS” コマンドを実行することで、インデックスの統計情報 (テーブル上に存在する全てのインデックス、特定のインデックス) を更新することが可能です。

”UPDATE STATISTICS” コマンドでオプションをつけない場合は、一部のデータをサンプリングしてインデックスの統計情報が更新されます。 また オプション (WITH FULLSCAN) を付けることで、テーブル上に存在する全てのデータをもとに統計情報を更新することも可能です。

もちろん全てのデータをもとに更新する方がより正確なインデックスの統計データを作成することが可能ですが、データページの読み取りなどのディスク I/O、CPU リソースが多く消費されることが予測されます。

そのため、データ量の多いテーブルに対して ”UPDATE STATISTICS” コマンドを実行する場合は、まずは オプション無し (サンプリング) よる統計情報の更新を実行後、効果が見られない場合に オプション (WITH FULLSCAN) で再度実行してみましょう。

 

– テーブル tab1 に存在する全てのインデックスの統計情報を更新
update statistics tab1
go

– テーブル tab1 に存在する特定のインデックス (本例では PK_tab1) の統計情報を更新
update statistics tab1(PK_tab1)
go

 

– テーブル tab1 に存在する全てのインデックスの統計情報を更新 (フルスキャン)
update statistics tab1 with fullscan
go

– テーブル tab1 に存在する特定のインデックス (本例では PK_tab1) の統計情報を更新 (フルスキャン)
update statistics tab1(PK_tab1) with fullscan
go

 

+ 参考情報

UPDATE STATISTICS (Transact-SQL)

 

3) 強制的に実行プランをリコンパイルする。

パラメータ化クエリ、 ストアドプロシージャ 及び トリガー の場合、統計情報を更新したのみでは、クエリの実行プランが リコンパイル されない場合があります。

そのため、統計情報を更新した後もクエリのパフォーマンスが改善しなかった場合には、明示的に該当の パラメータ化クエリ、 ストアドプロシージャ 及び トリガー に対して “sp_recompile” を実行し、強制的にクエリの実行プランをリコンパイルさせることが有効となる場合があります。

また、どのクエリでパフォーマンスが低下しているかが明確ではないが、クエリで参照されているテーブルをある程度 特定できる場合は、特定のテーブルに対して実行されるクエリをすべて強制的にリコンパイルさせることも可能です。

 

– 特定のストアドプロシージャ (本例では sp_TEST1) を強制的にリコンパイルさせる。
EXEC sp_recompile N’sp_TEST1′

– テーブル tab1 を参照するすべてのクエリを強制的にリコンパイルさせる。
EXEC sp_recompile N’tab1′

 

+ 参考情報

sp_recompile (Transact-SQL)

 

 

[補足]

アプリケーションで発生しているタイムアウトがコマンドタイムアウトであるかを確認する方法の一つとして、タイムアウト発生時にクライアント側に返された スタック (Stack) 情報を確認する方法があります。

System.Data.SqlClient.SqlCommand の処理の中でタイムアウトが発生した場合は、コマンドタイムアウトが発生していると判断可能となります。

 

### コマンドタイムアウト発生時の Stack 例 ###

System.Data.SqlClient.SqlException:Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. .. .

at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection,…)

at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,…)

at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler,… )

at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, …)

at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, …)

at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, …)

at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion,…)

at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()

:

 

Microsoft Azure SQL Database パフォーマンス チューニング (第 2 回) では、リソースの使用状況の確認方法、及び パフォーマンス レベル (DTU) の変更方法などを紹介する予定です。

 

※ 本Blogの内容は、2016年5月 現在の内容となっております。

プリセールスチームからのお知らせ

$
0
0

Microsoft Japan Data Platform Tech Sales Team

 

今回はマイクロソフトのデータプラットフォーム製品群のプリセールスを担当しているチームからのお知らせです。

 

先月より、プリセールスチームでも MSDN での Blogサイトの公開を始めました。

Microsoft Japan Data Platform Tech Sales Team Blog

https://blogs.msdn.microsoft.com/dataplatjp/

 

こちらの Blog では SQL Server の歴史や新製品・新機能のご紹介、またAzure を利用する際のベストプラクティスや Power BI Tips 等、様々な記事を公開していく予定となっております。

 

サポートチームの Blog の成功体験を参考に、より幅広いユーザの皆様に SQL Server の価値・魅力を伝えていくことを目的としております。

是非こちらの Blog も定期的にチェック頂ければ幸いです。

 

 

また、 Power BI については、日本語のデモ動画を日本マイクロソフト公式 YouTube チャンネルで公開をしております。

https://www.youtube.com/playlist?list=PL1RqQ3kddIpbfgIcBT7RB6xaGdUKpwKiq

Power BI の操作感や、新機能についてわかりやすくキャッチアップできる内容になっておりますので、こちらも是非ご活用ください。

 

TempDB を圧縮する場合の注意点について

$
0
0

 

皆さん、こんにちは。 Microsoft SQL Server/Microsoft Azure SQL Database サポートチームです。

今回は、TempDB を圧縮する場合の注意点について紹介したいと思います。

 

一時テーブルに大量のデータを挿入したり、大量データをソートする必要があるような ロング トランザクション を実行した場合、TempDB のファイルサイズが大きく拡張される可能性があります。

そして、拡張された TempDB のファイルサイズを最も安全に初期サイズまで縮小させるためには、SQL Server サービスの再起動を実施することになります。

しかしながら、24時間365日 稼働し続けるシステムの場合、SQL Server サービスを即座に再起動させることは困難であるものと想定しています。

 

そのため、TempDB についても、ユーザーデータベースと同様に、DBCC SHRINKDATABASE, DBCC SHRINKFILE コマンド、または、SQL Server Management Studio (以降 SSMS) の圧縮タスクで、データベースを圧縮することが可能になっています。

 

+参考情報

SQL Server で tempdb データベースを圧縮する方法

 

しかしながら、TempDB に対して DBCC SHRINKDATABASE, DBCC SHRINKFILE コマンド、または、SSMS の圧縮タスクを実行する場合、以下の点に注意が必要です。

 

[注意点]

1) DBCC SHRINKDATABASE 及び DBCC SHRINKFILE コマンド、または、SSMS の圧縮タスクを実行後、Tempdb の 初期サイズ が更新されます。

2) Tempdb の 初期サイズ は、SQL Server Management Studio の データベースのプロパティに表示されている [初期サイズ (MB)] 欄の値と異なる場合があります。

 

それでは、実際に、Tempdb の初期サイズがどのように更新されるかを見ていきましょう。

※ 検証では、SQL Server 2014 を使用しています。

 

まず Tempdb の初期サイズについて説明します。

SQL Server サービス起動時に Tempdb が再作成されますが、Tempdb 作成時のファイルサイズは、sys.master_filessize 列の値が、初期ファイルサイズとして使用されます。

 

[クエリ]

select name, type_desc, size*8 as ‘size (KB)’ from sys.master_files
where database_id = 2

[結果]

name    type_desc    size (KB)
tempdev    ROWS    10240
templog    LOG    10240

 

今回の例の場合は、Tempdb のデータベース物理ファイル (tempdev) サイズ、トランザクションログファイル (templog) サイズの何れも 10 MB となっています。

ここで、Tempdb のファイルサイズを拡張させるため、以下のクエリを実行します。

 

[クエリ]

set nocount on

use tempdb
go
create table t1 (c1 char(4000), c2 char(4000))
go
declare @i int
set @i = 0
while @i < 10000
begin
set @i = @i +1
insert into t1 values(@i,@i)
end
go
select name, type_desc, size*8 as ‘size (KB)’ from sys.master_files
where database_id = 2
go
select name, type_desc, size*8 as ‘size (KB)’ from sys.database_files
go

[結果]

[sys.master_files]
name    type_desc    size (KB)
tempdev    ROWS    10240
templog    LOG    10240

[sys.database_files]

name    type_desc    size (KB)
tempdev    ROWS    84928
templog    LOG    10240

 

クエリの実行結果を確認すると、sys.master_filessize 列の値と sys.database_filessize 列の値が異なっていることが分かると思います。

sys.master_filessize 列の値は、Tempdb の初期サイズであり、sys.database_filessize 列の値は、現在の実際のファイルサイズ (SQL Server Management Studio の データベースのプロパティに表示されている [初期サイズ (MB)]) となります。

 

Tempdb 上に一時テーブルのデータが残っている状態 (圧縮をすることが出来ない状態) で、DBCC SHRINKDATABASE コマンドを実行してみます。

 

[クエリ]

DBCC SHRINKDATABASE(‘tempdb’)
go
select name, type_desc, size*8 as ‘size (KB)’ from sys.master_files
where database_id = 2
go
select name, type_desc, size*8 as ‘size (KB)’ from sys.database_files
go

[結果]

[sys.master_files]

name    type_desc    size (KB)
tempdev    ROWS    83200
templog    LOG    10240

 

[sys.database_files]

name    type_desc    size (KB)
tempdev    ROWS    83200
templog    LOG    10240

 

クエリの実行結果を確認すると、sys.master_filessize 列の値と sys.database_filessize 列の値が同じ値になっていることが分かると思います。

つまり、Tempdb に対して 圧縮コマンドを実行した場合、圧縮コマンドで期待したファイルサイズまで圧縮されていなかったとしても、圧縮コマンド実行後のファイルサイズが、Tempdb の初期サイズとして更新されることになります。

今回の例では、Tempdbの物理ファイルサイズが 83 MB と大きくないサイズですが、仮に Tempdbの物理ファイルが 100 GB であった場合、でかつ、圧縮コマンドで 90 GB までしか圧縮できなかった場合は、Tempdb の初期サイズが 90 GB に更新されます。

そして、Tempdb の初期サイズが大きいなサイズの場合、次回 SQL Server 再起動時、Tempdb の再作成に時間を要し、SQL Server プロセスの起動までに時間を要するなどの悪影響を及ぼす可能性があります

Tempdb データベース物理ファイル (tempdev)、トランザクションログファイル (templog) のサイズを明示的に指定して運用されている環境の場合、意図せず Tempdb の初期サイズが変わり、運用に支障を及ぼす可能性もあるかもしれません。

 

そのため、Tempdb を SQL Server サービスの再起動ではなく、圧縮コマンド、または、SSMS の圧縮タスクで圧縮される場合は、Tempdb の初期サイズが更新される点を注意してもらえればと思います。

 

[補足]

SQL Server Management Studio の データベースのプロパティに表示されている [初期サイズ (MB)] の値を明示的に変更しても、Tempdb の初期サイズは更新されます。

 

 

+参考情報

sys.master_files (Transact-SQL)

sys.database_files (Transact-SQL)

DBCC SHRINKDATABASE (Transact-SQL)

DBCC SHRINKFILE (Transact-SQL)

データベースの圧縮

 

 

※ 本Blogの内容は、2016年5月 現在の内容となっております。

トラブルシューティング手法とサポートサービス

$
0
0

システムで何らかのエラーが発生したという場合や、やりたいことができないといった場合に、トラブルシューティングを行うことになりますが、その際の一般的なトラブルシューティングの流れについてご紹介します。私たちサポートチームもだいたいこのようなフローの考え方をもとに調査を行っています。また、テクニカルサポートでは、インシデント単位で承っているプロフェッショナルサービスと、時間単位で承っているプレミアサービスがあります。トラブルシューティング内容に応じた、それらのサポートサービスの違いについても、参考としてご案内します。

大きく、運用でのエラー発生、開発時の How-to では考え方も異なりますので、それぞれ分けて見ていきます。

エラー発生

Error_flow

A) いま事象が発生しているか

これは一番重要なポイントになります。いま事象が発生している場合には、すぐに対処が必要なため緊急度は高くなり、できることも多くなります。復旧優先で対処となりそうな対応をすぐに行ったり、原因調査のためにいったん情報も採取してから対処を行うといった対応があります。

一方、いま発生していないけれども、過去発生していたエラーをさかのぼって調査することもあります。この場合には、どれだけ手掛かりとなる情報が残っているかが重要です。

B)エラーメッセージやログから調査

いま事象が発生している場合には、エラーメッセージやログを確認します。

SQL Server を例にとると、既定で出力されている情報として参考になるのは、下記があります。

既定の情報

その他、事象に応じて、次のような情報を採取することもあります。

追加情報
プロフェッショナルサービス、プレミアサービスのいずれでも、これらの情報からの調査は承っています。違いとしては、下記があります。

プロフェッショナルサービス
これらの情報から、対処方法を調査してご案内します。
プレミアサービス
これらの情報から、対処方法を調査してご案内します。また、必要に応じて原因追及の調査も行うことが可能です。
追加情報の中でも、BIDトレース、ネットワークトレース、ダンプファイルを採取する必要がある事象については、環境依存の問題の可能性が一般的には高いと言えます。その場合にはプレミアサービスでのみ調査可能です。

 

C) 発生状況の切り分け

事象によっては、情報採取よりも、事象が発生するパターン、発生しないパターンを切り分けることによって、問題点が特定できる場合があります。また、発生しないパターンが確認できると、それが対処方法に直結する場合もあります。例えば、次のような切り分けがあります。

  • 特定の環境で発生する、もしくは複数の環境で発生する
  • 特定のクライアントで発生する、複数のクライアントで発生する
  • 特定のユーザーで発生する、複数のユーザーで発生する
  • 設定を変更することで発生しない
  • 操作する順番によって発生しない

また、何らかの違いが確認できた場合には、発生する場合と発生しない場合の、B) の情報や設定を比較することで、問題点を特定しやすくなります。

プレミアサービスでのみ、切り分け調査は承っています。

D) 残っている情報から調査

すでに発生していない事象であれば、残っているログから手掛かりとなる情報を探します。

まずは、既定で残っている B) の「既定の情報」があります。B) の「追加の情報」もうまく採取できていましたら、それらの情報も参照します。

プロフェッショナルサービス、プレミアサービスのいずれでも、これらの情報からの調査は承っています。

E) 次回発生時の情報採取

何も手掛かりとなる情報が残っていなかったり、残っている情報からは判断がつかない場合も多くありますので、その場合には、再発時にしっかりと調査できるように採取する情報を検討します。

プロフェッショナルサービス、プレミアサービスのいずれでも、再発時に有効な情報採取の検討は承っています。

F) 再現手順の確立

再発させたくない、あらかじめ仕掛けておくような情報採取が困難といった場合には、再現手順の確立、発生パターンの切り分けが必要となります。例えば、下記のような発生パターンを見極めて、検証環境でも同様の事象を発生させて、E) で検討したような情報を狙って採取します。

  • 特定の操作をすると100%発生
  • 一度発生すると発生し続ける
  • リトライ等によりすぐに発生しなくなる
再現手順の確立のご支援は、プレミアサービスでのみのサービスとなっています。プレミアサービスでは、マイクロソフト社内でも再現手順確立のために、同様の環境を構築して調査します。
なお、プロフェッショナルサービス、プレミアサービスのいずれのサービスでも、1つの事象について、上記の対応を組み合わせてご提供します。
例えば、先月発生していたエラーの調査という場合では、D) の残っている情報からまずは調査します。ログに有効な手掛かりが残っていたり、特徴的なエラーで過去事例も多くあるという場合であれば、そのまま原因や対処方法をご案内できます。しかしながら、特定できないような場合には、E) の次回発生した際に有効な情報採取を検討した上でご案内します。

How-to

HowTo_flow

A) 参考となる情報があるか

マイクロソフトのサイト(msdnやTechNet、KB等) や書籍で、サンプルや実現方法が説明されている場合には、それを参考に実装します。また、マイクロソフト以外のサイトやフォーラム等有効な情報は数多くありますので、参考となる情報を探します。

プロフェッショナルサービス、プレミアサービスのいずれでも、参考となる情報の調査は承っています。公開されている情報以外には、マイクロソフト社内の事例や不具合情報等から、参考となる情報をご案内します。

B) 情報をもとに実装

参考となるわかりやすい情報があれば、実装できると思います。

情報があったとしても、分かりにくい場合や実装するにはもっと例がほしいといった場合も多くあります。プロフェッショナルサービス、プレミアサービスのいずれでも、参考となる情報についての補足説明を承っています。

C) 動作確認のサンプルはあるか

参考となる情報がなければ、少し厄介です。その場合には、何かエラーが発生するようなわかりやすい場合には、そのエラーを手掛かりに上記の「エラー発生」のようなトラブルシューティングを行うことになります。

D) サンプルをもとに動作検証

サンプルがあれば、それをもとに動作検証し、プロパティを変更したり、コードを変更したりして、実現できる方法を探します。

シンプル化したサンプルを提供いただくことで、プロフェッショナルサービス、プレミアサービスのいずれでも、これらの情報からの調査は承っています。あらかじめサンプルをご用意いただくことで、すぐに動作検証をしたりデバッグも可能となるため、有効な回答を早く提示できる可能性が高まります。

E) シンプル化したサンプル作成

サンプルがまだない場合には、遠回りになるかもしれませんが、まずはやりたいことを最小限に実行できるようなサンプルを作成します。それにより、やりたいことはできるのか、他の手法を検討する必要があるのか確認します。

シンプル化したサンプル作成のご支援は、プレミアサービスでのみ承っています。

F) 期待する動作にならない環境で情報を取得して調査

サンプルの作成も困難な場合には、期待する動作にならない環境で、「エラー発生」の 「B)エラーメッセージやログから調査」のようにトラブルシューティングを行います。

 

 

「調査」とは?

上のトラブルシューティングでは、情報を採取して「調査」すると説明していますが、具体的には私たちサポートエンジニアは次のようなことを行っています。

  • msdn や TechNet、KB 等の公開情報を確認する
  • 事例データベースや不具合データベースを検索し、合致している事例や不具合、すでに実績のある手法を確認する
  • ホワイトペーパーや社内インターナルの技術情報を確認する
  • 検証環境を構築して、テストにより実際の動作を確かめる
  • シンプル化したプログラムを作成して、テストにより実際の動作を確かめる
  • 検証環境で再現させた上で、設定を変更したり、違う操作をしてみる
  • 検証環境で再現させた上で、詳細なログを採取して問題点を特定する
  • 問題の環境で採取したダンプファイルをソースコードと紐づけてデバッグする
  • 検証環境で再現させた上で、ステップ実行させてデバッグする

 

最後に

トラブルシューティング時のフローが、今後トラブルシューティングを実施される際の参考になりましたら幸いです。

また、エラー発生、How-to という非常にざっくりした分類とともに、サポートサービスについてもご案内しました。もちろん実際の問題は、これらの分類に該当しなかったり、サポートサービスのサービスレベルで分けられるものではなかったりしますので、お問合せいただいた際に伺った問題に応じて柔軟に対応していきます。お気軽にお問合せください。

2016 年 5 月 SQL Server 最新モジュール

$
0
0

2016 年 5月 17日 時点の SQL Server 最新モジュールです。

SQL Server 2005 は 2016 年 4 月 12 日に延長サポートが終了しました。長らくのご愛用ありがとうございました。
SQL Server 2008 は 2014 年 7 月 8 日にメインストリームサポートが終了しました。

サービス
パック

更新プログラム

バージョン

リリース年月

SQL Server 2014

SP1

KB 3144524 (CU6)

12.0.4449.0

2016/4メインストリームサポート

SQL Server 2012

SP3

KB 3152635 (CU3)

11.0.6537.0

2016/5メインストリームサポート

SQL Server 2008 R2

SP3

無し

10.50.6000.0

2014/9延長サポート

※2014年7月8日にメインストリームサポートが終了しました。

SQL Server 2008

SP4

無し

10.0.6000.0

2014/10延長サポート

※2014年7月8日にメインストリームサポートが終了しました

 

RTM : Release To Manufacturing (製品出荷版)
SP : Service Pack (サービスパック)
CU : Cumulative Update (隔月リリースの累積更新プログラム)
OD : On-Demand (オンデマンドリリースの累積更新プログラム)

SQL Server の更新プログラムの詳細については、SQL Server の更新プログラムを参照して下さい。

メインストリームサポート、延長サポートについては、マイクロソフトサポートライフサイクルを参照して下さい。

FlushCache メッセージ

$
0
0

 

神谷 雅紀
Escalation Engineer

 

 

SQL Server 2012 以降では、以下のメッセージが Errorlog ファイルに記録されることがあります。今回はこのメッセージを解説します。

 

メッセージ

 

FlushCache: cleaned up 39907 bufs with 1628 writes in 74882 ms (avoided 30218 new dirty bufs) for db 5:0
            average writes per second: 21.74 writes/sec average throughput: 4.15 MB/sec, I/O saturation: 3296, context switches 9000
            last target outstanding: 153600, avgWriteLatency 22

 

メッセージの意味

 

このメッセージは、チェックポイントプロセスが、データバッファにキャッシュされているデータをデータファイルへフラッシュするのに、recovery interval に設定されている時間よりも長い時間がかかったことを示しています。

上のメッセージを例にすると、「データベース ID 5 のキャッシュ上で変更されたデータページのうち チェックポイント開始後に変更された 30218 ページを除く 39907 ページを、74882 ミリ秒かけて 1628 回の書き込み要求によりファイルへ書き出した。平均書き込み数は 21.75 回 / 秒、平均スループットは 4.15 MB / 秒、未完了 I/O 数がターゲットを超えたのは 3296 回、コンテキストスイッチは 9000 回、未完了 I/O ターゲットは 1536000、平均書き込みレイテンシーは 22」という意味です。

ここで言う「未完了 I/O ターゲット」は、未完了非同期 I/O の最大数です。未完了 I/O 数がこの最大数を超えると SLEEP_BPOOL_FLUSH 待ちとなります。

 

このメッセージが記録された時の対応

 

このメッセージが記録された時に実施すべき対応は、まず、ディスクのパフォーマンスを確認することです。パフォーマンスカウンタで、SQLServer:Buffer Manager\Checkpoint pages/sec と該当データベースのデータファイルが置かれている物理ディスクの Physical Disks\Avg. Disk Write Queue LengthCurrent Disk Queue Length、%Idle Time を確認し、チェックポイント時の Idle Time が 0 でディスクキューが非常に長い場合は、そのデータベースが必要とする書き込み量がディスクの性能を上回っている可能性があります。

書き込み量がディスク性能を上回っていると思われる場合、ディスク自体の性能を向上させる以外では、以下の方法が考えられます。

 

-k 起動パラメーターによる最大 I/O 量の制限

SQL Server では、起動パラメーター –k により、チェックポイントによる書き込み量を制限することができます。例えば、起動パラメーターとして -k5 を指定すると、チェックポイントによる書き込みは、5 MB / 秒に制限されます。

これにより、ディスク性能を上回る書き込み要求を発生させないようにすることができる可能性がありますが、チェックポイントによる書き込み自体の絶対量が減る訳ではないため、1 度のチェックポイントにかかる時間が長くなる可能性があります。

 

FIX: I/O requests that are generated by the checkpoint process may cause I/O bottlenecks if the I/O subsystem is not fast enough to sustain the IO requests in SQL Server 2005

 

間接チェックポイント

SQL Server 2012 以降では、間接チェックポイントを使用することで、自動チェックポイントよりも短い間隔でチェックポイントを実行することができます。これにより、一度のチェックポイントでファイルに書き出すページ数を減らすことができる可能性があります。例えば、これまではチェックポイントの平均実行間隔が 1 分で 100 ページの書き出しを行っていたものを、30 秒で 50 ページを書き出すといった形です。

ただし、頻繁にページが書き換わる場合、全体としての書き込み量が多くなる可能性もあります。例えば、1 秒に 1 度書き換わるページがある場合、チェックポイントの平均実行間隔が 1 分であったとすると、ページの内容がメモリ上で 60 回書き換わって 1 度ファイルに書き出されることになります。この場合、チェックポイントの平均実行間隔が 30 秒になっても、30 回書き換わって 1 度ファイルに書かれるようになるだけで、どちらの場合もチェックポイント時の書き出し対象ページであることには変わりません。その結果、チェックポイント間隔が短くなることで、合計の書き出しページ数が増える可能性もあります。このような点も考慮して、TARGET_RECOVERY_TIME を決定する必要があります。

 

データベース チェックポイント (SQL Server)

 

関連

FAQ:実行時間の長い I/O を示すエラー833について

照合順序 –文字の比較と並び順 (その 2)

$
0
0

神谷 雅紀
Escalation Engineer

 


照合順序 – 文字の比較と並び順 (その 1) では照合順序とは何かを書きました。今回は、照合順序に関わるいくつかの注意点について書きます。

 

 

照合順序の衝突

 

異なる照合順序が指定されている列同士は、比較することができません。

以下は、その簡単なサンプルです。

 

use master
go
drop database ja_90_bin2
go
— 照合順序 japanese_90_bin2 のデータベースを作成
create database ja_90_bin2 collate japanese_90_bin2
go
use ja_90_bin2
go
— 照合順序 japanese_90_bin2 のデータベースに japanese_90_ci_as と japanese_90_cs_as の列を持つテーブルを作成
create table dbo.ja_90_cias (c1 int, c2 nvarchar(10) collate japanese_90_ci_as)
create table dbo.ja_90_csas (c1 int, c2 nvarchar(10) collate japanese_90_cs_as)
go
— japanese_90_ci_as と japanese_90_cs_as の列でテーブルを結合
select * from dbo.ja_90_cias i inner join dbo.ja_90_csas s on i.c2=s.c2
go
— 実行結果
メッセージ 468、レベル 16、状態 9、行 1
equal to 操作の “Japanese_90_CS_AS” と “Japanese_90_CI_AS” 間での照合順序の競合を解決できません。

 

これが問題になる最も一般的な例が、tempdb 上に作成される一時テーブルです。

 

use ja_90_bin2
go
— ユーザーデータベースにテーブルを作成
create table dbo.parmanent_tab (c1 int, c2 nvarchar(10))
— 一時テーブルを作成
create table #temporary_tab (c1 int, c2 nvarchar(10))
go
— これらのテーブルを結合
select * from dbo.parmanent_tab p inner join #temporary_tab t on p.c2=t.c2
go
— 実行結果
メッセージ 468、レベル 16、状態 9、行 1
equal to 操作の “Japanese_CI_AS” と “Japanese_90_BIN2” 間での照合順序の競合を解決できません。

 

一時テーブルは tempdb に作成されますので、一時テーブルの列は明示的に指定しない限り、tempdb の照合順序を継承します。tempdb は、SQL Server インストール後に明示的に変更していない限り、SQL Server インストール時に指定したインスタンスの照合順序に設定されています。そのため、ユーザーデータベースやテーブルの作成時に tempdb とは異なる照合順序を指定した場合には、注意が必要です。

照合順序が同一ではない列の比較を行う場合は、以下のように、比較に使用する照合順序を明示的に指定する必要があります。

 


select * from dbo.parmanent_tab p inner join #temporary_tab t on p.c2=t.c2 collate japanese_90_cs_as


 

データベース照合順序とメタデータ参照

 

データベースの照合順序は、メタデータにも適用されます。

例えば、BIN2 照合順序のデータベースにあるテーブルを参照する場合は、テーブル名や列名の大文字小文字が区別されます。

以下は、その例です。テーブル名の最初の文字 j は小文字ですが、クエリでの参照では J と大文字になっているため、エラーとなります。

 

select * from dbo.Ja_90_cias i inner join dbo.ja_90_csas s on i.c2=s.c2
go
— 実行結果
メッセージ 208、レベル 16、状態 1、行 1
オブジェクト名 ‘dbo.Ja_90_cias’ が無効です。

 

日本語におけるアクセント

 

「ぁ」などは、Japanese および Japanese_90 照合順序では、大文字小文字 (Case) ではなくアクセント (Accent) として扱われます。

「々」「ー」(長音) などは、直前の文字の繰り返しであり、それ自体は意味を持たないものとして解釈されます。

 

if N’あ’ = N’ぁ’ collate japanese_90_ci_ai
print N’equal’
else
print N’not equal’
go
if N’あ’ = N’ぁ’ collate japanese_90_ci_as
print N’equal’
else
print N’not equal’
— 実行結果
equal
not equal

   

「重み (weight)」がない文字を用いた比較

 

BIN もしくは BIN2 照合順序として比較することで、重みが定義されていない文字の比較が可能になります。

 

付録 : 文字一覧の作成スクリプトサンプル (SC 照合順序サポートバージョン (SQL Server 2012 以降) 用)

 

マイクロソフトでは、個々の照合順序ごとの文字の並び順の一覧や並び順の規則などは公開していません。並び順を確認する必要がある場合は、確認の必要な照合順序ごとに、以下のようなスクリプトにより確認して下さい。

 

— 準備
if db_id(N’collation’) is not null
drop database collation
go
create database collation collate Japanese_XJIS_100_CI_AS_SC
go
use collation
go
drop table dbo.t1
go
create table dbo.t1
(k int,
c nvarchar(2) collate Japanese_XJIS_100_CI_AS_SC)
go
declare @c int
set @c=0
while (@c <= 0x10FFFF)
begin
insert into dbo.t1 values (@c, NCHAR(@c))
set @c+=1
end
go
— Japanese_XJIS_100_CI_AS_SC 順
select * from dbo.t1 order by c collate Japanese_XJIS_100_CI_AS_SC,k
go
— Japanese_90_CI_AS 順
select * from dbo.t1 order by c collate Japanese_90_CI_AS,k
go

— Japanese_CI_AS 順
select * from dbo.t1 order by c collate Japanese_CI_AS,k
go

— Japanese_CI_AS 順
select k as ‘code’, c ‘char’,
case
when NextChar = c collate Japanese_CI_AS then ‘=’
else ‘!=’ end as ‘EQ/NEQ’,
NextChar as ‘next char’,
unicode(NextChar) as ‘next char code’
from
(select k, c, lead(c,1,0) over (order by c collate Japanese_CI_AS, k) as ‘NextChar’ from dbo.t1) X
order by c collate Japanese_CI_AS, k
go


   


日付 更新内容
2014/01/15 公開 神谷
2016/07/26 リンク等修正 神谷


2016 年 7 月 SQL Server 最新モジュール

$
0
0

2016 年 7月 26日 時点の SQL Server 最新モジュールです。

SQL Server 2005 は 2016 年 4 月 12 日に延長サポートが終了しました。長らくのご愛用ありがとうございました。
SQL Server 2008 は 2014 年 7 月 8 日にメインストリームサポートが終了しました。

サービス
パック

更新プログラム

バージョン

リリース年月

SQL Server 2016

RTM KB 3164674 (CU1)

13.0.2149.0

2016/7
メインストリームサポート

SQL Server 2014

SP1

KB 3162659 (CU7)

12.0.4459.0

2016/6
メインストリームサポート

SQL Server 2012

SP3

KB 3165264 (CU4)

11.0.6540.0

2016/7
メインストリームサポート

SQL Server 2008 R2

SP3

無し

10.50.6000.0

2014/9
延長サポート
※2014年7月8日にメインストリームサポートが終了しました。

SQL Server 2008

SP4

無し

10.0.6000.0

2014/10
延長サポート
※2014年7月8日にメインストリームサポートが終了しました

 

RTM : Release To Manufacturing (製品出荷版)
SP : Service Pack (サービスパック)
CU : Cumulative Update (隔月リリースの累積更新プログラム)
OD : On-Demand (オンデマンドリリースの累積更新プログラム)

SQL Server の更新プログラムの詳細については、SQL Server の更新プログラムを参照して下さい。

メインストリームサポート、延長サポートについては、マイクロソフトサポートライフサイクルを参照して下さい。

SQL Server 2016 環境においてデータベースメールが正常に使用できない

$
0
0

事象

本ブログ公開日時点 (2016年8月15日) において、SQL Server 2016 環境において、データベースメール機能が正常に使用できない事象が発生しています。
データベースメール機能を使用した場合、特にエラーなどは発生しませんが送付設定を行ったメールがキューに滞留し送付されない状態が続きます。

原因

本事象は、.NET Framwork 3.5 系統 (2.0, 3.0, 3.5) がインストールされていない環境で発生します。
本事象の原因は、データベースメール機能が内部的に使用しているプロセス (DatabaseMail.exe) が .NET Framework 3.5 系統 (2.0, 3.0, 3.5) とともに動作するよう開発されているためです。

対処策

.NET Framework 3.5 系統をインストールすることで本問題の回避が可能です。
.NET Framework 2.0, 3.0, 3.5 に関してはサポートが終了しており、3.5 SP1 のみがサポート期間になるため、データベースメール機能をご利用いただく際には、.NET Framework 3.5 SP1 をインストール下さい。

Microsoft .NET Framework サポート ライフサイクル ポリシー
https://support.microsoft.com/ja-jp/gp/framework_faq/ja-jp

マイクロソフト サポート ライフサイクル
https://support.microsoft.com/ja-jp/lifecycle/search/default.aspx?sort=PN&alpha=.NET%20Framework&Filter=FilterNO
※ .NET Framework 3.5 SP1 のサポートライフサイクルは、同梱されている OS のサポートライフサイクルに準拠します。

TableAdapter 構成ウィザードは、Oracle 固有の構文をサポートしていない

$
0
0

佐藤 靖典
SQL Developer Support Engineer

 

今回は、Visual Studio の TableAdapter 構成ウィザードで TableAadpter を生成できない事象について紹介します。

 

1. 事象

データソースとして Oracle を使用し、TableAdapter 構成ウィザードで特定のクエリを指定した場合、次のエラーなどにより TableAdapter の生成に失敗します。

  • クエリ テキストを解析できません。
  • Unable to parse query text.

 

現在までに、クエリで以下を使用した場合にエラーが発生することが報告されています。

  • SELECT ~ FOR UPDATE
  • (+) を使用した外部結合
  • ROW_NUMBER 関数
  • “||” による文字列の連結

 

2. エラーが発生する理由

Visual Studio がクエリ構文解析のために使用しているクエリ パーサーが、Oracle 固有の構文をサポートしていません。
また、大変恐れ入りますが、現時点で Oracle 固有の構文をサポートする予定はございません。

 

3. 対処案

残念ながら、上述のような構文を使用したクエリの場合、TableAdapter 構成ウィザードで TableAdapter を生成できませんので、以下のような対応をご検討ください。

1) TableAdapter 構成ウィザードでは、上述のようなエラーが発生する構文を省いたクエリを指定して、TableAdapter を生成する。
2) 生成された DataSetName.Designer.cs/vb の CommandText に、使用したい構文を追加する。

 

4. 補足

System.Data.OracleClient 名前空間は .NET Framework の将来のバージョンで削除される予定です。このため、オラクル社が提供している Oracle Data Provider for .NET (ODP.NET) をご利用いただく事を強くお奨め致します。
また、Visual Studio のアドインとして提供されているオラクル社の Oracle Developer Tools for Visual Studio (ODT) を使用することで、ODP.NET に対応した TableAdapter 構成ウィザードなどが利用できるようになります。

 

参考資料

Features and limitations of the .NET Managed Provider for Oracle

———-< 抜粋 (ここから) >———-

Supported Oracle servers

The .NET Managed Provider for Oracle is built on version 8.1.7 of the Oracle Call Interface (OCI) application programming interface (API). The .NET Managed Provider for Oracle is developed and fully tested against the Oracle 8.1.7 Server. The .NET Managed Provider for Oracle has also been tested against Oracle 8.1.6. Microsoft will only address and support issues that occur against Oracle 8.1.6 server or Oracle 8.1.7 server and Oracle 9i or later versions. The .NET Managed Provider for Oracle 2.0 was tested against Oracle 9i Release 2, Oracle 10g Release 1, and Oracle 10g Release 2.

———-< 抜粋 (ここまで) >———-

System.Data.OracleClient Namespace
———-< 抜粋 (ここから) >———-
This types in System.Data.OracleClient are deprecated and will be removed in a future version of the .NET Framework. For more information, see Oracle and ADO.NET.
———-< 抜粋 (ここまで) >———-

[まとめ] SQL Server Japan Support Team Blog インデックス

$
0
0


★Welcome to Microsoft SQL Server Japan Support Team Blog

====================================

■1. 一般情報

◆a. SQL Server Update 情報

◆b. DO’s&DONT’s やった方がいいこと やらない方がいいこと

◆c. How to系

◆d. 若葉マークブログ

◆e. Known issue

◆f. SQL Connectivity

■2. SQL Serverエンジン

◆a. ツール

◆b 機能

◆c. SQL トラブルシューティング

◆d. インストール/アップグレード/アンインストール

■3. SQL Database (Azure)

■4. Analysis Services

■5. Reporting Service

■6. データアクセス

◆a. ADO.NET

◆b. ADO

◆c. JDBC

■7. Integration Services

■8. PowerBI

■9. イベント・お知らせ

====================================


■1. 一般情報 – a. SQL Server Update 情報

1. SQL Server の最新モジュール情報 (まとめページ)
2.
SQL Server の更新プログラム

Topへ

========================

■1. 一般情報 – b. DO’s&DONT’s やった方がいいこと やらない方がいいこと

1. DO’s&DONT’s #1: やらない方がいいこと – 運用環境で、Profiler GUI を使用してトレースする
2.
DO’s&DONT’s #2: 絶対にやらなければいけないこと – データ型を一致させる
3.
DO’s&DONT’s #3: やらなければいけないこと – 非典型的パラメータ値が存在する場合の再コンパイル (Atypical Parameter Problem …
4.
DO’s&DONT’s #4: やらない方がいいこと – クエリの 条件句 (WHERE や JOIN ON 等) で参照されている列の加工
5.
DO’s&DONT’s #5: やっておいた方がいいこと – SQL Azure アプリケーションでは Activity ID を記録しておく
6.
DO’s&DONT’s #6: 絶対にやってはいけないこと – ストアドプロシージャ内でのパラメータ値の変更
7.
DO’s&DONT’s #7: やらない方がいいこと – インデックス再構築 (REBUILD) 後のデータファイル圧縮 (SHRINK)
8.
DO’s&DONT’s #8: やってはいけないこと – インデックス再構築 (REBUILD) 後のインデックス統計情報更新 (UPDATE STATISTICS)
9.
DO’s&DONT’s #9: やらない方がいいこと – ディメンションのキー属性として末尾に全角スペースが格納される恐れがあるカラムを利用する。
10.
DO’s&DONT’s #10: やらない方がいいこと – クエリの条件句で変数を参照する
11.
DO’s&DONT’s #11: やってはいけないこと – トランザクションログファイルの拡張サイズを極端に小さくする
12.
DO’s&DONT’s #12: やった方がいいこと – max server memory を設定する
13.
DO’s&DONT’s #13: 絶対にやってはいけないこと – ORDER BY が指定されていないクエリの結果が一定の順番に並んでいると仮定すること
14.
DO’s&DONT’s #14: 絶対にやってはいけないこと – ひとつの CPU に対して affinity mask と affinity I/O mask の両方 …
15.
DO’s&DONT’s #15: やってはいけないこと – クラスタ SQL Server をサービスとして操作すること
16.
DO’s&DONT’s #16: やってはいけないこと – ログ配布プライマリデータベースのログバックアップ
17.
DO’s&DONT’s #17: やっておいた方がいいこと – tempdb データファイル数を CPU 数に一致させる
18.
DO’s&DONT’s #18: やった方がいいこと – .NET Framework アプリケーションでパラメータクエリを実行する場合にはパラメータのデータ型やサイズ …

Topへ

========================

■1. 一般情報 – c. How to系

1. システム データベースのリストア手順
2.
[PowerPivot][HowTo] SharePoint 2013 で PowerPivot for SharePoint を使用する方法
3.
非ドメイン環境上のサーバー間でミラーリングを構築する方法について
4.
SQL Server の手動アンインストール手順
5.
SQL Server 2008 R2 Service Pack のクラスター環境への適用手順
6.
Tips:SQL Server の Log フォルダの位置の確認方法
7.
HowTo: BID トレース – データアクセス アプリケーションのトレースを採取する
8.
ODBC API を使用して mdb ファイルからメモ型データを取得する方法
9.
バックアップからのリストアによるリカバリ手順
10.
Windows Vista 以降の OS 上で SQL Server 2008 SQL Server 2008 R2 から DTS パッケージ デザイナ を使うには
11.
How To:Ghost Record を確認する方法
12.
SQL Server SysPrep の注意事項と実行手順
13.
64 ビットSQL Server から SQL Server 2000 へのリンクサーバー設定について
14.
[Linux] BCP で 2GB 以上のサイズのファイルをインポートするには
15.
SQL Server Profilerを使用して、取得したPowerPivot 実行時のトレースを確認する方法
16.
実行プランを読む – 基本編 (その 1)
17.
実行プランを読む – 基本編 (その 2)
18.
実行プランを読む – 基本編 (その 3)
19.
実行プランを読む – 基本編 (その 4)
20.
実行プランを読む – 活用編 (その 1) – クエリチューニング
21.
実行プランを読む – 活用編 (その 2) – クエリパフォーマンス悪化の原因
22.
SQL トレーススクリプトの作成、実行 (SQL Server 2000)
23.
SQL トレーススクリプトの作成、実行 (SQL Server 2005, 2008, 2008 R2)
24.
HowTo: Management Studio を使ってトランザクションログファイル (ldf) のサイズを小さくする方法
25.
Oracle 経験者のための SQL Server HowTo #1: 拡張イベントを使って On-Error Dump を取得する
26.
Oracle 経験者のための SQL Server HowTo #2: サーバートレースを使ってセッション・レベルのSQLトレースを取得する
27.
オンプレミスのSQL Server データベースのバックアップ先としてクラウドを活用しよう
28.
PowerPivot for Excel: SQL Server 認証ユーザーのパスワード保存について
29.
デッドロックを避けるコツ  
30.
SQL Server Data Tools の入手  
31.
[VS 2013] SQL Server Data Tools (SSDT) のフォントの色が変わらない
32. SQL Server 2014 Express 日本語版 x86 インストール要件
33. 日本語照合順序での漢数字 〇 (0x815A) の取り扱いについて
34. 日本語照合順序での 濁音、半濁音 の取り扱いについて

Topへ

========================

■1. 一般情報 – d. 若葉マークブログ

1. [若葉マークブログ] 第 1 回 : トランザクションとは
2.
[若葉マークブログ] 第 2 回 : ロックとは
3. [若葉マークブログ] 第 3 回 : システム データベースとは

Topへ

========================

■1. 一般情報 – e. Known issue

1. KB 2007728 – Error message when you use SSL for connections to SQL Server: “The cer …
2.
IEの制限の影響によりWCF Data Services クライアントにおいて、300秒で’System.InvalidOperationException’が発生することがある
3.
[Windows XP] 暗号化され����� SQL Server Compact Edition データベースに対してアクセス遅延が発生することがある
4.
Known Issue: SQL Server 2008 フェールオーバクラスタのアンインストールに失敗する
5.
クエリ ビルダーで作られたクエリを実行すると構文エラーが発生する
6.
[*.rdlc] エクスポートした PDF の文字化け ~ 確認ポイントの鍵はシステム構成要素にあり ~
7.
osql での DBCC CHECKDB 結果に “SQLGetDiagRec failed” が大量に出力される
8.
SQL Server Profiler ツールの LoginName 列に無効化している“sa” ログインが出力される
9.
SQL Server 起動完了後のエラー 18456 「ユーザー ‘XXX’ はログインできませんでした。 理由: 明示的に指定されたデータベースを開けませんでした。」
10.
Known Issue: SQL Server 2008/SQL Server 2008 R2 インストール時に “Visual Studio – VsTemplat …
11.
SQL Server 2008 および SQL Server 2008 R2 の不具合修正情報の公開 – 照合順序のバージョンが 90 の場合、誤った実行結果が返ってくる事象に …
12.
Halloween Protection (HP) について
13.
DBCC SHRINKFILE 実行時のメッセージ
14.
データベースの所有者が確認できない影響
15.
CLR オブジェクト開発時の注意点
16.
透過的なデータ暗号化 (TDE) 環境のミラーリングの構成でエラー 927
17.
SQL Server 2005 Management Studio の [ログインをロックアウトする] チェックを外した際の注意点について
18.
FAQ:実行時間の長い I/O を示すエラー833について
19.
状態 または エラー ID が 29 のエラー 18056
20.
エラー666
21.
SQL Server 2012 BCP ユーティリティ 使用時の警告 “フォーマット ファイルを使用して BCP インポートを行うと、区切り列内の空の文字列が NULL に変換 …
22.
SQL Server 2000 MSDE から 上位バージョンへのアップグレードについて
23.
SQL Server 2012 構成ファイルの分散再生クライアントのオプションについて
24.
NVARCHAR/NCHAR データ型の列に格納されるデータが?になる 
25.
イベント ID 10016 エラーについて 
26. SSISDB が AlwaysOn 可用性グループに含まれている環境での修正プログラム適用 
27
. Known Issue: ストアドプロシージャ実行時にエラー 602 が発生する。 
28
. INSERT や UPDATE でデータの切り捨てエラー 8152 が発生することがある 
29
. Kerberos認証を用いてファイル共有上のデータを基にBulk Insertするとアクセス拒否で処理が失敗する

Topへ

========================
■1. 一般情報 – f. SQL Connectivity

1. Troubleshooting Connectivity #1 – SQL Server への接続
2.
Troubleshooting Connectivity #2 – エラー情報からわかる失敗原因
3.
Troubleshooting Connectivity #3 – 予期しない接続切断
4.
Troubleshooting Connectivity #4 – 接続エラーの調査方法
5.
Troubleshooting Connectivity #5 – セッション���立までの動作
6.
Troubleshooting Connectivity #6 – 接続タイムアウトは悪なのか?
7.
[SQL Connectivity] Case Study : クラスタ化された構成の SQL Server 2008 Service Pack 1 以前のバージョンの名前付き …
8.
[SQL Connectivity] Case Study : 認証 DC ダウン時の SSPI エラーについて
9.
[SQL Connectivity] 名前付きパイプでの接続時トラブルシューティング
10. Troubleshooting Connectivity #7 – 接続タイムアウトエラーまでの時間は?

Topへ

========================

■2. SQL Server エンジン – a. ツール

1. [SDP] 情報採取ツール Support Diagnostic Platform
2.
Kerberos Configuration Manager for SQL Server
3.
SQL Server 2012 BCP ユーティリティ 使用時の警告 “フォーマット ファイルを使用して BCP インポートを行うと、区切り列内の空の文字列が NULL に変換 …
4.
HowTo: Management Studio を使ってトランザクションログファイル (ldf) のサイズを小さくする方法
5.
Oracle 経験者のための SQL Server HowTo #1: 拡張イベントを使って On-Error Dump を取得する
6.
Oracle 経験者のための SQL Server HowTo #2: サーバートレースを使ってセッション・レベルのSQLトレースを取得する
7.
[SSMA] SSMA の動作環境についての推奨
8.
[SSMA] SSMA for Oracle Extension Pack インストール時に「スカラー変数 “xxx” を宣言してください。」エラーが発生する。
9.
SQL Server Profilerを使用して、取得したPowerPivot 実行時のトレースを確認する方法
10.
Known Issue: SQL Server 2008/SQL Server 2008 R2 インストール時に “Visual Studio – VsTemplat …
11.
SQL Server Profiler ツールの LoginName 列に無効化している“sa” ログインが出力される

Topへ

========================

■2. SQL Server エンジン – b. 機能

1. recovery interval 構成オプションは何を指定するオプションなのか
2.
照合順序 – 文字の比較と並び順 (その 1) 
3.
照合順序 – 文字の比較と並び順 (その 2)       
4.
DOPは並列クエリで使用されるスレッド数ではない      
5.
SQL Server 2012/2008 R2 新機能: 列変更カウンタ (colmodctr)       
6.
クエリタイムアウト – その仕組み      
7.
SQL Server のメモリ管理 – Part 4       
8.
SQL Server のメモリ管理 – Part 3       
9.
SQL Server のメモリ管理 – Part 2       
10.
SQL Server のメモリ管理 – Part 1
11.
排他ロックヒントを指定した行の列を読み取れる動作について
12.
SQL Server 2012 におけるパーティションインデックス再構築時の統計情報更新
13.
NUMERIC/DECIMAL の演算結果の有効桁数と小数点以下桁数
14.
SQL Server における数値定数 2147483647 と 2147483648 の違い
15.
DATETIME データ型のミリ秒に関する注意事項
16.
FAQ: 32-bit/64-bit SQL Server 間でのユーザーデータベースの移動は可能?
17.
FAQ: SQL Server 起動後、接続が可能となるタイミングは?
18.
SQL Server へのメモリ割り当てを減らすと tempdb 使用量が増える??
19.
統計情報の自動更新が ON の時には統計情報を手動で更新する必要はない?      
20.
変数とパラメータの違い
21.
CXPACKET 待ちは悪いことか?
22.
インデックス再構築と再構成の違い
23.
LSN とは?
24.
断片化について
25.
インテントロックとは?
26.
NVARCHAR/NCHAR データ型の列に格納される��ータが?になる
27. 統計情報更新処理をキャンセルした場合の動作
28. real および float データ型におけるアンダーフロー時の動作 
29. データベース バックアップでイベント ID 3014 が記録される

Topへ

========================
■2. SQL Server エンジン – c. SQL トラブルシューティング

1. SQL Server セットアップトラブルシューティング – 初級編
2.
[SQL Troubleshooting] SQL Server トラブルシューティング 6 回シリーズのご案内
3.
[SQL Troubleshooting] 第1回 : Tips – SQL Server エラーログとイベント ログを採取する (SQL 2000 ~ 2008 R2)
4.
[SQL Troubleshooting] 第2回 : Tips -パフォーマンス ログ��採取方法 (Windows Server 2003 ~ Windows Server …
5.
[SQL Troubleshooting] 第3回 :パフォーマンスログの確認方法について
6.
[SQL Troubleshooting] 第4回 サーバートレースの解析方法 – (1)
7.
[SQL Troubleshooting] 第5回 サーバートレースの解析方法 – (2)
8.
[SQL Troubleshooting] 第6回:ブロッキング情報を採取する (SQL Server 2000 ~ 2008 R2)
9.
どうする? SQL Server のクエリ パフォーマンスが低下した!       
10.
デッドロック調査用の情報採取
11.
バックアップが存在しない、または、バックアップからのリストアが行えない場合のデータベース復旧手順
12.
破損したデータベースからのデータ抜き出し方法

Topへ

========================
■2. SQL Server エンジン – d. インストール/アップグレード/アンインストール

1. SQL Server 2008 R2 SP2 適用後のクエリ動作について
2.
SQL Server 2000 MSDE から 上位バージョンへのアップグレードについて
3.
SQL Server 2012 構成ファイルの分散再生クライアントのオプションについて
4.
スクリプト アップグレード モード
5.
SQL Server セットアップトラブルシューティング – 初級編
6.
PowerPivot for SharePoint のサービスパックを適用する方法
7.
SQL Server の手動アンインストール手順
8.
SQL Server 2008 R2 Service Pack のクラスター環境への適用手順
9.
クラスター環境にSQL Server をインストールする際、MSDTC をクラスター化する必要があるか?  
10.
SQL Server 2014 SP1 適用における不具合 – Updated(解消されました) 
11.
SSISDB が AlwaysOn 可用性グループに含まれている環境での修正プログラム適用 

Topへ

========================

■3. SQL Database (Azure)

1. [Windows Azure] ゲスト OS アップグレード後、ゲスト OS 上のSQL Server Native Client を使用している WebRole/Worker …
2.
Windows Azure で、Web ロールで特定のバージョンの SQL Server Native Client を常に使えるようにする方法
3.
[Windows Azure SQL Reporting] Visual Studio でファイルエクスポートをするプログラムを書いてみよう
4.
Windows AzureのIaaS機能でSQL Serverを使ってみよう
5.
[SQL Database] デッドロックの調査方法について
6.
[SQL Database] 接続タイムアウトの発生を改善したい
7.
[SQL Database] Insert クエリにおいて使用制限されている Table ヒントについて
8.
SQL Azure 高可用性を保持するための仕組み
9.
WebロールからWindows Azure SQL Database にアクセスする (3/3) : Azure 管理者ポータルを使用したストレージの作成と Web ロールの配置
10.
WebロールからWindows Azure SQL Database にアクセスする(2/3) : EDM を作成しよう
11.
WebロールからWindows Azure SQL Database にアクセスする (1/3) : Azure 管理者ポータルを使用したテーブルの作成
12.
Windows Azure で、Web ロールで特定のバージョンの SQL Server Native Client を常に使えるようにする方法
13.
[SQL Database] 照合順序を指定したデータベース作成方法について
14.
SQL Database にてスクリプトの生成が行えない
15.
NVARCHAR/NCHAR データ型の列に格納されるデータが?になる 
16. [SQL Database] 新バージョン(V12) へのアップグレード用 PowerShell コマンドレット 
17. V12 の Azure SQL Database の sys.event_log に reconfiguration が記録されない 
18. [SQL Database] Web および Business エディションの終了に伴う、新エディションへの移行について (Microsoft Azure SQL Database) 
19. SQL Database から Microsoft Azure 仮想マシン + SQL Server 環境 へのデータ移行方法について

Topへ

========================

■4. Analysis Services

1. [SSAS] SQL Server Analysis Services トレース採取方法
2.
Analysis Services のデータが ‘-0’(マイナスゼロ)と表示される
3.
Known Issue: NullProcessing プロパティを Preserve にすると「Preserve は、個別のカウント メジャー ‘XXXX’ の有効な Nul …
4.
SQL Server 2005,2008,2008 R2 Analysis Services Standard エディションにおける使用可能な関数について
5. [SSAS] SQL Server Analysis Services メタデータマネージャー Error 発生時の対処方法
6. NULL データが含まれる場合の MDX 関数 BOTTOMCOUNT 使用の注意事項
7. Analysis Services のデッドロックとブロッキングの確認方法

Topへ

========================

■5. Reporting Service

1. [SSRS] Reporting Services サービスが起動しない
2.
[SSRS] HTML 形式で表示したレポートと PDF や印刷で表示したレポートの見栄えが異なる。対処方法は!?
3.
[SSRS] SharePoint 統合モードのレポートサーバー構築手順 (単一サーバー) – SQL Server 2012 と SharePoint 2013 の組み合わせ)
4.
[SSRS] SharePoint 統合モードのレポートサーバー構築手順 (単一サーバー) – SQL Server 2008 と SharePoint 2010 の組み合わせ)
5.
[SSRS Troubleshooting] SQL Server Reporting Services トラブルシューティングのご案内
6.
[SSRS]Reporting Services 使用時の TERADATA 拡張機能エラー
7.
[SSRS] Reporting Services 文字化け:異なる OS 間の PDF 文字化け
8
[SSRS] レポートパラメータの位置や順序を変更できるか
9.
[SSRS] Reporting Services の詳細ログ
10.
[SSRS] SharePoint 統合モードのレポートサーバー構築手順 (単一サーバー) – SQL Server 2012 と SharePoint 2010 の組み合わせ)
11.
[SSRS] SQL Server 2008 Reporting Services 不具合情報 – 1月1日に発生する イベント ID 123 について
12.
[SSRS] [SQL Server 2008 以降のバージョン] ReportViewer のレポート表示後、印刷ボタン(アイコン)を押下すると「クライアントの印刷コントロー …
13.
[SSRS] Response.Redirect でページ遷移すると画像が見えなくなる(deleteAfterServicing パラメーター)
14.
[SSRS] SQL Server 2008 Report Services で 3 つ以上のカスケード型レポートパラメータを設定したレポートを表示した場合、カスケード型レポー …
15.
Reporting Services のレポートで印刷を行うと「クライアントの印刷コントロールを読み込めません。」のエラーが発生する
16.
Known Issue: Reporting Services への初回アクセス時に、レポート表示に時間がかかる。
17.
How To:Reporting Services のレポートをコマンドで配置する方法
18.
SQL Server 2008 R2 Reporting Services 不具合情報 – “値 ‘x’ は無効です。有効な値は、’xx’ から ‘xxx’ です。”
19.
SQL Server 2008 以降の Reporting Services で総ページ数表記が “?” になる
20.
SQL Server Reporting Services カスタムアセンブリの設定方法
21. [TroubleShooting] PowerPivot ギャラリーで PowerPivot ファイルを開くとエラーが発生する
22. [SSRS] SharePoint 統合モードのレポートサーバー構築手順 (単一サーバー) – SQL Server 2014 と SharePoint 2013 の組み合わせ
23. [SSRS] Reporting Services 文字化け:PDF の文字をコピーして貼り付けると文字化け
23. [SSRS] SharePoint 統合モードのレポートサーバー構築手順 (単一サーバー) – SQL Server 2014 と SharePoint 2010 の組み合わせ
24. [SSRS] Report Viewer コントロール 2010 Language Pack Service Pack 1 が修復インストールとなる
25. [不具合] SQL Server 2014 Reporting Services にて、パフォーマンスオブジェクト ReportServer:Service が動作しない
26. [SSRS] HowTo:詳細レポートを別ウィンドウで開く方法
27. [SSRS] アプリケーションドメイン DefaultDomain を読み込めませんでしたエラーについて
28. [SSRS] Windows 7 SP1 x86 のクライアントにて SQL Server 2014 のレポートを印刷するとエラーになる

Topへ

========================

■6. データアクセス – a. ADO.NET

1. [ADO.NET] DataGridView 内のデータ編集とそのときのバインドした DataTable の動作
2.
[ADO.NET/SNAC] イニシャル パートナーがダウンしている場合、フェールオーバー パートナーに接続できる確率を高める方法
3.
「タイムアウトに達しました。プールから接続を取得する前にタイムアウト期間が過ぎました。プールされた接続がすべて使用中で、プール サイズの制限値に達した可能性があります。」エラー … 4
4.
DO’s&DONT’s #18: やった方がいいこと – .NET Framework アプリケーションでパラメータクエリを実行する場合にはパラメータのデータ型やサイズ … 
5. [Info] .NET Framework アプリケーションをリモート配置した場合に SQL Server への接続がタイムアウトすることがある
6. TableAdapter 構成ウィザードは、Oracle 固有の構文をサポートしていない

Topへ

======================== 

■6. データアクセス – b. ADO

1. KB 2517589 / 2640696 : Win7 SP1 上でビルドした ADO を参照するプログラムが下位バージョン OS 上で動作しない現象と対処方法 (Ver 2.1)
2.
Known Issue: ADO アプリケーションを Windows Server 2008 上で動作させると「要求された名前、または序数に対応する項目がコレクションで見つかり …
3. [SQL ODBC]「text、ntext、または image ポインター値は、指定した列名と競合しています。」エラーが発生する 
4. [Data Access] ODBC カーソルライブラリ非推奨に伴う Visual Studio 2012 以降のバージョンの MFC における実装変更とその動作について 
5. [Info] .NET Framework アプリケーションをリモート配置した場合に SQL Server への接続がタイムアウトすることがある

Topへ

======================== 

■6. データアクセス – c. JDBC

1. [JDBC] JDBC ドラ��バーの Java 7 対応について
2.
Microsoft SQL Server JDBC Driver は Android OS をサポートしない

Topへ

======================== 

■7. Integration Services

1. Known Issue: SSIS パッケージの TransactionOption オプションを Required とすると、パッケージの動作が停止しているように見える。
2.
64 bit 環境上における Oracle からデータ取得する Integration Services プロジェクト (SSIS パッケージ) の注意事項 – 開発編
3. [SSIS] パッケージログの出力方法
4. [SSIS] OLE DB プロバイダーを使用してフラットファイルをインポートすると正しくない結果となる
5. SQL Server Data Tools の入手
6. [SSIS] イベント ID 274 警告について
7. [SSIS] SSIS パッケージの Connect Timeout の既定値 0 は、無制限ではない。

Topへ

========================

 

■8. PowerBI

1. [HowTo] PowerBI for Office365 サイトのブックにある PowerView のデータ更新
2. [Office 365] Microsoft Power BI ライセンスが表示される 
3. [Power BI] Power BI セルフサインアップに起因したドメイン登録エラーの対処方法

Topへ

========================

■9. イベント・お知らせ

1. [Info] 毎週水曜日はサポート・サービスデイ ~ 調布でお待ちしています ~(※オンラインも可能です!!)
2.
[皆様のご意見募集しております!]サーバーおよびツール製品に関するインターナショナルユーザー アンケート 2013~「ローカライズについてモノ申したい方、大募集です!~」
3.
壁紙追加されました![期間限定Info]Windows Server 2012 先得早割キャンペーン(吉田健一氏コラボ壁紙全員プレゼントです!)
4.
[重要なお知らせ] 2012 年 7 月 2 日 (月) から技術サ��ート窓口時間が変更になります
5.
SQL PASS Summit 2011 at Seattle
6.
db tech showcase 2012

Topへ

2016 年 8 月 SQL Server 最新モジュール

$
0
0

2016 年 8月 26日 時点の SQL Server 最新モジュールです。

SQL Server 2005 は 2016 年 4 月 12 日に延長サポートが終了しました。長らくのご愛用ありがとうございました。
SQL Server 2008 は 2014 年 7 月 8 日にメインストリームサポートが終了しました。

サービス
パック

更新プログラム

バージョン

リリース年月

SQL Server 2016

RTM KB 3164674 (CU1)

13.0.2149.0

2016/7
メインストリームサポート

SQL Server 2014

SP2

KB 3178925 (CU1)

12.0.5511.0

2016/8
メインストリームサポート

SQL Server 2012

SP3

KB 3165264 (CU4)

11.0.6540.0

2016/7
メインストリームサポート

SQL Server 2008 R2

SP3

無し

10.50.6000.0

2014/9
延長サポート
※2014年7月8日にメインストリームサポートが終了しました。

SQL Server 2008

SP4

無し

10.0.6000.0

2014/10
延長サポート
※2014年7月8日にメインストリームサポートが終了しました

 

RTM : Release To Manufacturing (製品出荷版)
SP : Service Pack (サービスパック)
CU : Cumulative Update (隔月リリースの累積更新プログラム)
OD : On-Demand (オンデマンドリリースの累積更新プログラム)

SQL Server の更新プログラムの詳細については、SQL Server の更新プログラムを参照して下さい。

メインストリームサポート、延長サポートについては、マイクロソフトサポートライフサイクルを参照して下さい。

Viewing all 293 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>