2009-10-01から1ヶ月間の記事一覧
SQL Server では、トレース フラグ 1204 を利用すると、デッドロックの状況を監視することができます。トレース フラグ 1204 は、SQL Server の起動オプションで有効にするか、次のように DBCC TRACEON コマンドで有効化できます。 DBCC TRACEON (1204,-1) …
SQL Server では、プロファイラ(SQL Server Profiler)の Lock:DeadLock と Lock:DeadLock Chain イベントクラスを利用すると、デッドロックの状況を監視することができます。Lock:DeadLock はデッドロック発生時、Lock:DeadLock Chain はデッドロックに関…
SQL Server 2005 以降では、プロファイラ(SQL Server Profiler)の DeadLock Graph イベントクラスを利用すると、グラフィカルにデッドロックの状況を監視できるので大変便利です。 デッドロックの犠牲者(ロールバックされた側)のプロセスには × が付きま…
SQL Server 2008 R2 で提供される Microsoft SQL Server PowerPivot for Excel 2010 CTP2(開発コード名 Gemini)をちょっと触ってみました。PowerPivot という名のとおり、ピボット テーブルの超進化版で、とっても便利です! いろいろなデータソースからデ…
SQL Server でデッドロックを監視するには、次の 3つの方法があります。 SQL Server Profiler の DeadLock Graph イベントクラスを利用 SQL Server Profiler の Lock:DeadLock と Lock:DeadLock Chain イベントクラスを利用 トレース フラグ 1204 を利用 SQL…
SQL Server 2000 の DTS(データ変換サービス)パッケージをまとめて構造化ストレージ ファイル(.dts)として保存するには、WSH(VBScript)を使って、次のように記述します。 Const DTSSQLStgFlag_UseTrustedConnection=256 Set cn = WScript.CreateObject…
SQL Server 2008 の透過的なデータ暗号化(TDE)を設定したデータベースのバックアップは、簡単にはリストアできないようになっています。これは、バックアップ ファイルや mdf ファイルが持ち出された(盗まれた)ことを想定しているためです(中身が簡単に…
SQL Server 2008 からは、透過的なデータ暗号化(TDE:Transparent Data Encryption)機能を利用して、データベース全体を暗号化することができるようになっています。SQL Server 2005 で提供されていた EncryptByKey と DecryptByKey を利用した暗号化機能…
SQL Server 2005 以降の EncryptByKey 関数では、データベース マスター キー(と証明書、対称キー)を利用して暗号化することもできます。これは次のように利用します。 -- ログイン アカウント作成(user1) USE master CREATE LOGIN user1 WITH PASSWORD …
SQL Server 2005 以降の EncryptByKey 関数では、証明書(と対称キー)を利用して暗号化することもできます。これは次のように利用します。 -- ログイン アカウント作成(user1) USE master CREATE LOGIN user1 WITH PASSWORD = 'P@ssword' -- データベース…
SQL Server 2005/2008 では、EXECUTE AS LOGIN を利用して、ほかのログイン アカウントでのログインをシミュレートすることができます。これはセキュリティ設定などを確認する場合に役立ちます。EXECUTE AS LOGIN は、次のように利用します。 -- user1 での…
SQL Server 2005 以降では、EncryptByKey 関数を利用して、非対称キー(RSA 512bit/1024bit/2048bit)で暗号化することができます。これは次のように利用します。 -- テーブルの作成 CREATE TABLE テスト1 ( id int IDENTITY(1, 1) ,ClearText nvarchar(10…
SQL Server 2005 以降では、EncryptByKey 関数を利用して、対称キー(AES や 3DES、RC4)で暗号化することができます。これは次のように利用します。 -- テーブルの作成 CREATE TABLE テスト1 ( id int IDENTITY(1, 1) ,ClearText nvarchar(100) ,EncryptDat…
SQL Server 2005 以降では、EncryptByPassPhrase 関数を利用して、パスフレーズで暗号化することができます。これは次のように利用します。 DECLARE @a nvarchar(500) DECLARE @b varbinary(max) SET @a = N'暗号化したい文字列' SET @b = EncryptByPassPhra…
SQL Server では、リンク サーバーを利用して Excel 2007 のファイル(.xlsx ファイル)を参照することもできます。この場合は、下記サイトから「2007 Office system ドライバ」をダウンロードして、インストールしておきます。2007 Office system ドライバ:…
SQL Server では、リンク サーバーを利用して Access 2007 のデータベース(.accdb ファイル)を参照することもできます。この場合は、下記サイトから「2007 Office system ドライバ」をダウンロードして、インストールしておきます。2007 Office system ド…
SQL Server では、リンク サーバーを利用して Excel 2003 のファイル(.xls ファイル)を参照することもできます。これは次のように利用します。 -- リンクサーバーを Shohin.xls ファイルに対して作成 USE master EXEC sp_addlinkedserver @server = N'EXCE…
SQL Server では、リンク サーバーを利用して Access(.mdb ファイル)のデータベースを参照することもできます。リンクサーバーの作成では、プロバイダに「Microsoft.Jet.OLEDB.4.0」を指定して、次のように記述します。 -- リンクサーバーを Northwind.mdb…
SQL Server では、リンク サーバーを利用して Oracle データベースのデータを参照することもできます。これは次のように利用します。 -- リンクサーバーを ORCL というネットサービス名の Oracle 9i に対して設定 USE master EXEC sp_addlinkedserver @serve…
SQL Server では、リンク サーバーを利用すると、リモート SQL Server のデータを簡単に参照することができます。これは次のように利用します。 -- リンクサーバーを POWER という名前の SQL Server に対して設定 USE master EXEC sp_addlinkedserver @serve…
SQL Server では、OPENROWSET 関数を利用すると、Excel 2007 のファイル(.xlsx ファイル)を参照することもできます。これは次のように利用します。これは利用するには、下記サイトから「2007 Office system ドライバ」をダウンロードして、インストールし…
SQL Server では、OPENROWSET 関数を利用すると、Access 2007 のデータを参照することもできます。これは利用するには、下記サイトから「2007 Office system ドライバ」をダウンロードして、インストールしておきます。 2007 Office system ドライバ: データ…
SQL Server では、OPENROWSET 関数を利用すると、Oracle データベースのデータを参照することもできます。これは次のように利用します。 -- アドホック クエリの有効化 EXEC sp_configure 'show advanced options', 1 RECONFIGURE EXEC sp_configure 'Ad Hoc…
SQL Server では、OPENROWSET 関数を利用すると、Excel 2003 のファイル(.xls ファイル)を参照することもできます。これは次のように利用します。 -- アドホック クエリの有効化 EXEC sp_configure 'show advanced options', 1 RECONFIGURE EXEC sp_config…
SQL Server では、OPENROWSET 関数を利用すると、Access のデータを参照することができます。これは次のように利用します。 -- アドホック クエリの有効化 EXEC sp_configure 'show advanced options', 1 RECONFIGURE EXEC sp_configure 'Ad Hoc Distributed…
SQL Server では、OPENROWSET 関数を利用すると、リモート SQL Server のデータを簡単に参照することができます。これは次のように利用します。 -- アドホック クエリの有効化 EXEC sp_configure 'show advanced options', 1 RECONFIGURE EXEC sp_configure …
SQL Server で tempdb を配置する際のポイントは、次のとおりです。 tempdb のサイズを大きく設定しておく tempdb の自動縮小は利用しない ユーザー データベースとは異なる RAID セットへ配置する(さらに、余裕がある場合は 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 のサイズを大きく設定しすぎてしまって、小さい値に戻したい場合は、次のように DBCC SHRINKFILE コマンドを使います。 USE tempdb DBCC SHRINKFILE(tempdev, 100) DBCC SHRINKFILE(templog, 100) この例では、データ ファイル(tempde…
異なる SQL Server 間で、同じ SID を持った SQL Server 認証用ログインアカウントを作成するには、サポート技術情報(KB)の 918992 で提供される「sp_help_revlogin」ストアドプロシージャを使用します。 SQL Server 2005 のインスタンス間でログインおよ…