-
Notifications
You must be signed in to change notification settings - Fork 0
MS_SQLServerSettingsRetrieval
- 戻る(SQL Server の基本的な設定)
- SQL Server での設定取得方法
- SQL Server の認証 / SQL Server の照合順序 / SQL Server の障害復旧
- つながらない!- SQL Server(つながらない!)
基本的に Microsoft Learn で確認できそう。
補足(3つの取得口): SQL Server の設定は、
どのスコープの設定かで参照先が変わる。ここを取り違えると
「設定したはずなのに反映されていない」という混乱になる。
スコープ 参照 設定 インスタンス(サーバ構成オプション) sys.configurations/sp_configuresp_configure+RECONFIGUREインスタンス(読み取り専用の属性) SERVERPROPERTY()不可(インストール時に決定) データベース sys.databases/DATABASEPROPERTYEX()ALTER DATABASE ... SETデータベース スコープの構成 sys.database_scoped_configurationsALTER DATABASE SCOPED CONFIGURATION(2016 以降)
-
sys.database_files (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/relational-databases/system-catalog-views/sys-database-files-transact-sql -
カタログ ビューでテーブルが作成されているファイル グループを確認する方法
sys.allocation_unitsというカタログ ビュー- sys.allocation_units (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/relational-databases/system-catalog-views/sys-allocation-units-transact-sql - sys.partitions (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/relational-databases/system-catalog-views/sys-partitions-transact-sql
- sys.allocation_units (Transact-SQL)
-
sys.databases (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/relational-databases/system-catalog-views/sys-databases-transact-sql -
DATABASEPROPERTYEX (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/t-sql/functions/databasepropertyex-transact-sql -
蒼の王座・裏口 - SQL Server の DB の
自動拡張のプロパティをクエリで取得する方法
http://sqlazure.jp/r/sql-server/211/
SELECT
name as '名前',
CASE
WHEN is_percent_growth = 0 THEN
LTRIM(STR(growth * 8.0 / 1024,10,1)) + ' MB単位で拡張、'
ELSE
CAST(growth AS VARCHAR) + ' %単位で拡張、'
END +
CASE
WHEN max_size = -1 THEN
'拡張制限無し。'
ELSE
LTRIM(STR(max_size * 8.0 / 1024,10,1)) + ' MBまでに拡張を制限。'
END
AS '自動拡張'
FROM sys.database_files-
自動管理操作は
-
DATABASEPROPERTYEX(IsAutoShrink、IsAutoCreateStatistics) -
sys.database_files(growth)
だけでなく、SQL Server Agent の
設定(保守計画)などの確認が必要かもしれない。 -
補足(
is_percent_growthを見る理由): 自動拡張が
パーセント指定になっていると、DB が大きくなるほど 1 回の拡張量が増え、
拡張中の待ち時間が伸びていく(10% 拡張は 100GB の DB では 10GB になる)。
MB 単位の固定値にしておくのが定石。
併せてAUTO_SHRINKはOFF(既定)であることを確認する。
-
sys.fn_helpcollations (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/relational-databases/system-functions/sys-fn-helpcollations-transact-sqlサポートされているすべての照合順序の一覧を返します。
-
sp_helpsort (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/relational-databases/system-stored-procedures/sp-helpsort-transact-sqlSQL Server のインスタンス
-
DATABASEPROPERTYEX (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/t-sql/functions/databasepropertyex-transact-sqlCollation(DB 単位)
-
SERVERPROPERTY (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/t-sql/functions/serverproperty-transact-sqlselect SERVERPROPERTY('IsIntegratedSecurityOnly')
-
Transact-SQL を使用した監査の作成と管理
https://learn.microsoft.com/ja-jp/sql/relational-databases/security/auditing/create-a-server-audit-and-server-audit-specification-
sys.database_audit_specifications
https://learn.microsoft.com/ja-jp/sql/relational-databases/system-catalog-views/sys-database-audit-specifications-transact-sqlサーバー インスタンス上の SQL Server 監査に含まれる
データベース監査仕様に関する情報を含みます。 -
sys.database_audit_specification_details
https://learn.microsoft.com/ja-jp/sql/relational-databases/system-catalog-views/sys-database-audit-specification-details-transact-sqlすべてのデータベースについてサーバー インスタンス上の
SQL Server 監査に含まれる、データベース監査仕様に関する情報を含みます。
-
user connections サーバー構成オプションの構成 >
Transact-SQL の使用 > user connections オプションを構成するには
https://learn.microsoft.com/ja-jp/sql/database-engine/configure-windows/configure-the-user-connections-server-configuration-option
sp_configure 'show advanced options', 1;
に指定し
RECONFIGURE;
した後の
sp_configure;
でサーバー構成オプションの user connections を確認する。
補足:
user connectionsの既定値は **0(無制限)**であり、
明示的に上限を設ける必要はほとんどない。
実際の同時接続数はsys.dm_exec_connectionsを数えて確認する
(SQL Server のコネクションとセッション)。
- sp_helpserver (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/relational-databases/system-stored-procedures/sp-helpserver-transact-sql
- FILL FACTOR オプション
https://learn.microsoft.com/ja-jp/sql/database-engine/configure-windows/configure-the-fill-factor-server-configuration-option
sp_configure 'show advanced options', 1;
に指定し
RECONFIGURE;
した後の
sp_configure;
でサーバー構成オプションの FILL FACTOR を確認する。
- sys.indexes (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/relational-databases/system-catalog-views/sys-indexes-transact-sql
インデックス単位では、
SELECT * FROM sys.indexesで確認できる。
補足(サーバ既定の FILL FACTOR は変えない): サーバ構成の
fill factorを 0(=100%)以外にすると、全インデックスに一律で効いてしまう。
読み取り中心のインデックスまで隙間だらけになり、
ページ数が増えて I/O が悪化する。
調整するならインデックス単位で
CREATE / ALTER INDEX ... WITH (FILLFACTOR = n)を指定する
(SQL Server のインデックス参照)。
-
セキュリティ カタログ ビュー (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/relational-databases/system-catalog-views/security-catalog-views-transact-sql-
sys.database_principals (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/relational-databases/system-catalog-views/sys-database-principals-transact-sqlSELECT * FROM sys.database_principals
-
sys.database_permissions (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/relational-databases/system-catalog-views/sys-database-permissions-transact-sqlSELECT * FROM sys.database_permissions
-
SELECT pr.principal_id, pr.name, pr.type_desc,
pr.authentication_type_desc, pe.state_desc, pe.permission_name
FROM sys.database_principals AS pr
JOIN sys.database_permissions AS pe
ON pe.grantee_principal_id = pr.principal_id;SELECT pr.principal_id, pr.name, pr.type_desc,
pr.authentication_type_desc, pe.state_desc,
pe.permission_name, s.name + '.' + o.name AS ObjectName
FROM sys.database_principals AS pr
JOIN sys.database_permissions AS pe
ON pe.grantee_principal_id = pr.principal_id
JOIN sys.objects AS o
ON pe.major_id = o.object_id
JOIN sys.schemas AS s
ON o.schema_id = s.schema_id;管理の目的による。
-
例えば、
-
再インストール復旧を目標とするなら、
- 「設定した全てが必要なもの」と考えた方が良い(再設定できるように)。
- 設定していない値は、既定値で OK(自動パラメタのチューニングの考え方に従う)
-
全てのパラメタ情報というなら、システム DB を含めてバックアップする。
-
補足(既定値との差分だけを管理する): 実務では、
「既定値から変更した項目」だけを構成管理の対象にするのが扱いやすい。
sys.configurationsはvalue_in_useと
既定値を比較できる情報を持つため、差分の抽出が容易である。SELECT name, value_in_use, is_dynamic, is_advanced, description FROM sys.configurations WHERE value_in_use <> value -- 未反映(RECONFIGURE 待ち) OR name IN (N'max server memory (MB)', N'min server memory (MB)', N'max degree of parallelism', N'cost threshold for parallelism', N'optimize for ad hoc workloads', N'backup compression default') ORDER BY name;なお、
sp_configureで値を変えても
RECONFIGUREを実行するまでvalue_in_useは変わらない。
上のクエリの 1 行目は、その「未反映」を検出するためのもの。
システム DB(特にmasterとmsdb)のバックアップは、
ログイン・ジョブ・メンテナンス プランの復旧に必須である。
-
sp_configure (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/relational-databases/system-stored-procedures/sp-configure-transact-sql -
SERVERPROPERTY (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/t-sql/functions/serverproperty-transact-sql -
DATABASEPROPERTYEX (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/t-sql/functions/databasepropertyex-transact-sql
Tags: 移行, データアクセス, SQL Server
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。