sqlcmd -W
sqlcmd -S <サーバ名> -U <ユーザ名> -P <パスワード> -d <データベース名> -W
CREATE SCHEMA <スキーマ名>;
SSMS での確認
データベース > システムデータベース > セキュリティ > スキーマ
ログインの作成
CREATE LOGIN <ログイン名> WITH PASSWORD = <パスワード名>;
ユーザーの作成
CREATE USER <ユーザー名> FOR LOGIN <ログイン名> WITH DEFAULT_SCHEMA = <スキーマ名>;
SSMS での確認
データベース > システムデータベース > セキュリティ > ユーザー
select name from SYS.SYSOBJECTS
WHERE xtype = 'U'
ORDER BY name;
(現在のスキーマ内のテーブル一覧が取得できます)
xtype には以下の種類があります。
AF = 集計関数 (CLR)
C = CHECK 制約
D = Default または DEFAULT 制約
F = FOREIGN KEY 制約
L = ログ
FN = スカラー関数
FS = アセンブリ (CLR) スカラー関数
FT = アセンブリ (CLR) テーブル値関数
IF = インラインテーブル関数
内部テーブル
P = ストアドプロシージャ
PC = アセンブリ (CLR) ストアドプロシージャ
PK = PRIMARY KEY 制約 (種類は K)
RF = レプリケーションフィルターストアドプロシージャ
S = システムテーブル
SN = シノニム
SQ = サービスキュー
TA = アセンブリ (CLR) DML トリガー
TF = テーブル関数
TR = SQL DML トリガー
TT = テーブル型
U = ユーザーテーブル
UQ = UNIQUE 制約 (種類は K)
V = ビュー
X = 拡張ストアド プロシージャ
DROP TABLE (データベース名).(スキーマ名).(テーブル名);
DROP TABLE (データベース名).(テーブル名);
DROP TABLE (テーブル名);
データベース名やテーブル名にハイフンを含む場合は "" で囲みます。
クライアントの処理時間 3486 3483 3484.5000
総実行時間 10472 10669 10570.5000
サーバー応答の待機時間 6986 7186 7086.0000
ざっくりいうと
サーバー応答の待機時間 : クエリーの処理時間
クライアントの処理時間:結果セットを返すのに要した時間
「サーバー応答の待機時間」は、最後の要求パケットがクライアントを離れてから最初の応答パケットがサーバーから返されるまでの時間です。 「クライアント処理時間」は、最初の応答パケットと最後の応答パケットの間の時間です。ところで、私はこれらの主張を裏付けるドキュメントを見つけることができませんでしたが、私の観察に基づいて、それらは有効な教育的推測であると言います。
SELECT S.name AS SchemaName,
O.name AS ObjectName,
I.name AS IndexName,
I.type_desc AS IndexTypeDesc,
I.is_primary_key AS IsPrimaryKey,
I.is_unique AS IsUnique,
I.is_disabled AS IsDisabled,
STUFF((SELECT ',' + COL_NAME(IC.object_id, IC.column_id)
FROM sys.index_columns AS IC
WHERE IC.is_included_column = 0
AND IC.object_id = I.object_id
AND IC.index_id = I.index_id
ORDER BY IC.key_ordinal
FOR XML PATH ('')), 1, 1, '') AS KeyColumns,
STUFF((SELECT ',' + COL_NAME(IC.object_id, IC.column_id)
FROM sys.index_columns AS IC
WHERE IC.is_included_column = 1
AND IC.object_id = I.object_id
AND IC.index_id = I.index_id
ORDER BY IC.index_column_id
FOR XML PATH ('')), 1, 1, '') AS IncludedColumns
FROM sys.indexes AS I
INNER JOIN sys.objects AS O
ON I.object_id = O.object_id
INNER JOIN sys.schemas AS S
ON O.schema_id = S.schema_id
WHERE I.index_id > 0
AND O.is_ms_shipped = 0
ORDER BY S.name,
O.name,
I.name;
最もシンプルな形は次のようになります。
CREATE NONCLUSTERED INDEX [【インデックス名】] ON [【テーブル名】]
(
[【インデックス列名】]
)
複数のインデックスを貼る場合は次のように記述します最もシンプルな形は次のようになります。
CREATE NONCLUSTERED INDEX [【インデックス名】] ON [【テーブル名】]
(
[【インデックス列名1】] , [【インデックス列名2】] , [【インデックス列名3】]
)
sqllocaldb info
結果例
MSSQLLocalDB
サーバーの種類 : データベースエンジン
サーバー名 : (localdb)\MSSQLLocalDB
認証 : Windows認証
SET STATISTICS XML ON を使用します。
SET STATISTICS XML ON
GO
/* ========== 調査したいSQL文 ↓ ========== */
SELECT * .............................................
/* ========== 調査したいSQL文 ↑ ========== */
GO
SET STATISTICS XML OFF
SET SHOWPLAN_XML ON を使用します。
SET SHOWPLAN_XML ON
GO
/* ========== 調査したいSQL文 ↓ ========== */
SELECT * .............................................
/* ========== 調査したいSQL文 ↑ ========== */
GO
SET STATISTICS XML OFF
SET SHOWPLAN_ALL ON を使用します。
SET SHOWPLAN_ALL ON
GO
/* ========== 調査したいSQL文 ↓ ========== */
SELECT * .............................................
/* ========== 調査したいSQL文 ↑ ========== */
GO
SET SHOWPLAN_ALL OFF
SET SHOWPLAN_TEXT ON;
GO
SET SHOWPLAN_ALL ON;
GO
SELECT * FROM YOUR_TABLE;
GO
SET SHOWPLAN_ALL OFF;
GO
SET SHOWPLAN_TEXT OFF;
GO
● [SQLServer]作成したストアド・ファンクション・プロシージャの一覧を取得する
select * from sys.objects
where
type in ('FN', 'IF', 'P', 'TF', 'TR')
order by type, name