2009-10-01から1ヶ月間の記事一覧

SQL Server でトレース フラグ 1204 でデッドロックを監視する

SQL Server では、トレース フラグ 1204 を利用すると、デッドロックの状況を監視することができます。トレース フラグ 1204 は、SQL Server の起動オプションで有効にするか、次のように DBCC TRACEON コマンドで有効化できます。 DBCC TRACEON (1204,-1) …

SQL Server でプロファイラの Lock:DeadLock と Lock:DeadLock Chain イベントクラスでデッドロックを監視する

SQL Server では、プロファイラ(SQL Server Profiler)の Lock:DeadLock と Lock:DeadLock Chain イベントクラスを利用すると、デッドロックの状況を監視することができます。Lock:DeadLock はデッドロック発生時、Lock:DeadLock Chain はデッドロックに関…

SQL Server でプロファイラの DeadLock Graph でデッドロックをグラフィカルに監視

SQL Server 2005 以降では、プロファイラ(SQL Server Profiler)の DeadLock Graph イベントクラスを利用すると、グラフィカルにデッドロックの状況を監視できるので大変便利です。 デッドロックの犠牲者(ロールバックされた側)のプロセスには × が付きま…

PowerPivot for Excel 2010 は無茶苦茶スゴイ!!!

SQL Server 2008 R2 で提供される Microsoft SQL Server PowerPivot for Excel 2010 CTP2(開発コード名 Gemini)をちょっと触ってみました。PowerPivot という名のとおり、ピボット テーブルの超進化版で、とっても便利です! いろいろなデータソースからデ…

SQL Server でデッドロックを監視するには

SQL Server でデッドロックを監視するには、次の 3つの方法があります。 SQL Server Profiler の DeadLock Graph イベントクラスを利用 SQL Server Profiler の Lock:DeadLock と Lock:DeadLock Chain イベントクラスを利用 トレース フラグ 1204 を利用 SQL…

SQL Server 2000 の DTS パッケージをまとめて構造化ストレージ ファイル(.dts)として保存する

SQL Server 2000 の DTS(データ変換サービス)パッケージをまとめて構造化ストレージ ファイル(.dts)として保存するには、WSH(VBScript)を使って、次のように記述します。 Const DTSSQLStgFlag_UseTrustedConnection=256 Set cn = WScript.CreateObject…

SQL Server 2008 透過的なデータ暗号化を設定した場合に別マシンで復元するには

SQL Server 2008 の透過的なデータ暗号化(TDE)を設定したデータベースのバックアップは、簡単にはリストアできないようになっています。これは、バックアップ ファイルや mdf ファイルが持ち出された(盗まれた)ことを想定しているためです(中身が簡単に…

SQL Server 2008 の透過的なデータ暗号化(TDE:Transparent Data Encryption)

SQL Server 2008 からは、透過的なデータ暗号化(TDE:Transparent Data Encryption)機能を利用して、データベース全体を暗号化することができるようになっています。SQL Server 2005 で提供されていた EncryptByKey と DecryptByKey を利用した暗号化機能…

SQL Server でデータベース マスター キーを利用したデータの暗号化(EncryptByKey:証明書、対称キー)

SQL Server 2005 以降の EncryptByKey 関数では、データベース マスター キー(と証明書、対称キー)を利用して暗号化することもできます。これは次のように利用します。 -- ログイン アカウント作成(user1) USE master CREATE LOGIN user1 WITH PASSWORD …

SQL Server で証明書を利用したデータの暗号化(EncryptByKey:対称キー)

SQL Server 2005 以降の EncryptByKey 関数では、証明書(と対称キー)を利用して暗号化することもできます。これは次のように利用します。 -- ログイン アカウント作成(user1) USE master CREATE LOGIN user1 WITH PASSWORD = 'P@ssword' -- データベース…

SQL Server 2008 で別ユーザーでログインをシミュレート(EXECUTE AS LOGIN、REVERT)

SQL Server 2005/2008 では、EXECUTE AS LOGIN を利用して、ほかのログイン アカウントでのログインをシミュレートすることができます。これはセキュリティ設定などを確認する場合に役立ちます。EXECUTE AS LOGIN は、次のように利用します。 -- user1 での…

SQL Server で非対称キーでデータの暗号化(EncryptByKey)

SQL Server 2005 以降では、EncryptByKey 関数を利用して、非対称キー(RSA 512bit/1024bit/2048bit)で暗号化することができます。これは次のように利用します。 -- テーブルの作成 CREATE TABLE テスト1 ( id int IDENTITY(1, 1) ,ClearText nvarchar(10…

SQL Server で対称キーでデータの暗号化(EncryptByKey)

SQL Server 2005 以降では、EncryptByKey 関数を利用して、対称キー(AES や 3DES、RC4)で暗号化することができます。これは次のように利用します。 -- テーブルの作成 CREATE TABLE テスト1 ( id int IDENTITY(1, 1) ,ClearText nvarchar(100) ,EncryptDat…

SQL Server でデータの暗号化(EncryptByPassPhrase)

SQL Server 2005 以降では、EncryptByPassPhrase 関数を利用して、パスフレーズで暗号化することができます。これは次のように利用します。 DECLARE @a nvarchar(500) DECLARE @b varbinary(max) SET @a = N'暗号化したい文字列' SET @b = EncryptByPassPhra…

SQL Server リンク サーバーで Excel 2007 ファイル(.xlsx ファイル)を参照するには

SQL Server では、リンク サーバーを利用して Excel 2007 のファイル(.xlsx ファイル)を参照することもできます。この場合は、下記サイトから「2007 Office system ドライバ」をダウンロードして、インストールしておきます。2007 Office system ドライバ:…

SQL Server リンク サーバーで Access 2007(.accdb ファイル)を参照するには

SQL Server では、リンク サーバーを利用して Access 2007 のデータベース(.accdb ファイル)を参照することもできます。この場合は、下記サイトから「2007 Office system ドライバ」をダウンロードして、インストールしておきます。2007 Office system ド…

SQL Server リンク サーバーで Excel ファイル(.xls ファイル)を参照するには

SQL Server では、リンク サーバーを利用して Excel 2003 のファイル(.xls ファイル)を参照することもできます。これは次のように利用します。 -- リンクサーバーを Shohin.xls ファイルに対して作成 USE master EXEC sp_addlinkedserver @server = N'EXCE…

SQL Server リンク サーバーで Access(.mdb ファイル)を参照するには

SQL Server では、リンク サーバーを利用して Access(.mdb ファイル)のデータベースを参照することもできます。リンクサーバーの作成では、プロバイダに「Microsoft.Jet.OLEDB.4.0」を指定して、次のように記述します。 -- リンクサーバーを Northwind.mdb…

SQL Server リンク サーバーで Oracle データベースを参照するには

SQL Server では、リンク サーバーを利用して Oracle データベースのデータを参照することもできます。これは次のように利用します。 -- リンクサーバーを ORCL というネットサービス名の Oracle 9i に対して設定 USE master EXEC sp_addlinkedserver @serve…

SQL Server リンク サーバーでリモート SQL Server のデータを参照するには

SQL Server では、リンク サーバーを利用すると、リモート SQL Server のデータを簡単に参照することができます。これは次のように利用します。 -- リンクサーバーを POWER という名前の SQL Server に対して設定 USE master EXEC sp_addlinkedserver @serve…

SQL Server OPENROWSET 関数で Excel 2007 ファイル(.xlsx ファイル)を参照するには

SQL Server では、OPENROWSET 関数を利用すると、Excel 2007 のファイル(.xlsx ファイル)を参照することもできます。これは次のように利用します。これは利用するには、下記サイトから「2007 Office system ドライバ」をダウンロードして、インストールし…

SQL Server OPENROWSET 関数で Access 2007(.accdb ファイル)を参照するには

SQL Server では、OPENROWSET 関数を利用すると、Access 2007 のデータを参照することもできます。これは利用するには、下記サイトから「2007 Office system ドライバ」をダウンロードして、インストールしておきます。 2007 Office system ドライバ: データ…

SQL Server OPENROWSET 関数で Oracle データベースを参照するには

SQL Server では、OPENROWSET 関数を利用すると、Oracle データベースのデータを参照することもできます。これは次のように利用します。 -- アドホック クエリの有効化 EXEC sp_configure 'show advanced options', 1 RECONFIGURE EXEC sp_configure 'Ad Hoc…

SQL Server OPENROWSET 関数で Excel ファイル(.xls ファイル)を参照するには

SQL Server では、OPENROWSET 関数を利用すると、Excel 2003 のファイル(.xls ファイル)を参照することもできます。これは次のように利用します。 -- アドホック クエリの有効化 EXEC sp_configure 'show advanced options', 1 RECONFIGURE EXEC sp_config…

SQL Server OPENROWSET 関数で Access のデータ (.mdb ファイル) を参照するには

SQL Server では、OPENROWSET 関数を利用すると、Access のデータを参照することができます。これは次のように利用します。 -- アドホック クエリの有効化 EXEC sp_configure 'show advanced options', 1 RECONFIGURE EXEC sp_configure 'Ad Hoc Distributed…

SQL Server OPENROWSET 関数でリモート SQL Server のデータを参照するには

SQL Server では、OPENROWSET 関数を利用すると、リモート SQL Server のデータを簡単に参照することができます。これは次のように利用します。 -- アドホック クエリの有効化 EXEC sp_configure 'show advanced options', 1 RECONFIGURE EXEC sp_configure …

SQL Server tempdb 配置のポイント

SQL Server で tempdb を配置する際のポイントは、次のとおりです。 tempdb のサイズを大きく設定しておく tempdb の自動縮小は利用しない ユーザー データベースとは異なる RAID セットへ配置する(さらに、余裕がある場合は tempdb のデータ ファイルとロ…

SQL Server tempdb を移動してサイズを変更するには

SQL Server で tempdb の場所を移動して、サイズを変更するには、次のように ALTER DATABASE ステートメントを実行します。 ALTER DATABASE tempdb MODIFY FILE ( NAME=tempdev ,FILENAME='E:\tempdb.mdf' ,SIZE=1024MB) ALTER DATABASE tempdb MODIFY FILE …

SQL Server tempdb のサイズを縮小するには

SQL Server で tempdb のサイズを大きく設定しすぎてしまって、小さい値に戻したい場合は、次のように DBCC SHRINKFILE コマンドを使います。 USE tempdb DBCC SHRINKFILE(tempdev, 100) DBCC SHRINKFILE(templog, 100) この例では、データ ファイル(tempde…

SQL Server:同じ SID のログイン アカウントを作成するには (sp_help_revlogin)

異なる SQL Server 間で、同じ SID を持った SQL Server 認証用ログインアカウントを作成するには、サポート技術情報(KB)の 918992 で提供される「sp_help_revlogin」ストアドプロシージャを使用します。 SQL Server 2005 のインスタンス間でログインおよ…