SnowConvert AI - SQL Server¶
移行の最初のステップは、移行に必要なコードを取得することです。データベースからコードを抽出する方法はたくさんあります。ただし、 SQL Server Management Studio(SSMS) を使用することを強くお勧めします。いずれにおいても、 MacOS とLinux環境のための代替手段を提供します。
前提条件¶
SQLServer データベースのあるサーバーへのアクセス権。
SQL Server Management Studio(SSMS)経由での抽出。¶
SQL Server Management Studio(SSMS)はWindowsでのみ利用可能です。Mac OS、Linuxについては次のセクションで説明します。
SSMS を開きます。
必要なデータベースを表示できる認証情報を使用して、必要なサーバーとサーバーインスタンスに接続します。
SSMS のメインウィンドウで、 Object Explorer を開きます。
Object Explorerペインで、 Databases を展開します。
目的のデータベースを右クリックし、Tasks -> Generate Scripts …を選択します。

Generate ScriptsダイアログのIntroductionページが表示された場合は、 Next をクリックします。そうでない場合は、次のステップに進みます。

Generate ScriptsダイアログのChoose Objectsページ:
Select specific database objects ラジオボタンを選択し、表示された Usersを除く(EXCEPT Users) すべてのデータベースオブジェクトタイプの チェックボックス に チェック を入れます(注意(NOTE): 提示されるデータベースオブジェクトタイプのリストは、選択したデータベースに存在するデータベースオブジェクトによります。したがって、データベースオブジェクトタイプのリストは表示が異なる可能性があります。Usersを除くすべてのデータベースオブジェクトタイプ(EXCEPT Users)を選択してください)。
Next をクリックします。

Generate ScriptsダイアログのSet Scripting Optionsページ:
Save as script file ボタンと One script file per object をクリックします。

Advanced ボタンをクリックします。
Advanced Scripting Optionsダイアログボックスで、確実に次のオプションが指示どおりに設定され、他のすべてのオプションがデフォルトのままであるようにしてください。

セクション |
設定 |
値 |
|---|---|---|
一般 |
Include System Constraint names |
True |
empty |
Script Extended Properties |
True |
Table/View Options |
Script Indexes |
True |
- |
Script Triggers |
True |
完了したら OK をクリックして、Generate ScriptsダイアログのSet Scripting Optionsウィンドウに戻ります。
Save as script file ラジオボタンを選択します。
File name:フィールドの右側にある省略記号 (...)をクリックします。
適切な場所に移動し、File Name:フィールドに記述的な値(たとえば、<server_name>_<instance_name>_<database_name>)を入力し、Saveをクリックします。
ANSI text ラジオボタンを選択します。
Nextをクリックします。
抽出を始める準備が整ったら、Generate ScriptsダイアログのSummaryページで、設定が正しいことを確認して Next > をクリックします(Next > をクリックすると抽出が始まります)。Save Scriptsページが表示され、抽出の進行状況が表示されます。

Generate Scriptsダイアログボックス(表示されません)のSave Scriptsページで、すべての結果が成功したことを確認し、Finish をクリックします。
必要なデータベースごとに手順5~10を繰り返します(それぞれ異なるファイル名を使用します)。すべてのデータベースが正常に抽出されたら、次のステップに進みます。
さらなる分析用に結果のファイルをSnowflakeに送信します。
結果をパッケージ化する¶
抽出処理が終わったら、結果を圧縮して送信します。
テーブルサイジングレポート¶
オプションA:スコープ内のすべてのデータベースについて、データベースを右クリックし、Reports > Standard Reports > Disk Usage By Tableを選択します。レポートが生成されますので、レポートを右クリックし、Excelとしてエクスポートします。

オプションB:以下のスクリプトを実行します。
USE <DB_NAME>;
SELECT
t.NAME AS TableName,
s.NAME AS SchemaName,
SUM(a.total_pages) * 8 / 1024 AS TotalSpaceMB,
SUM(a.used_pages) * 8 / 1024 AS UsedSpaceMB,
(SUM(a.total_pages) - SUM(a.used_pages)) * 8 / 1024 AS
UnusedSpaceMB
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id =
p.index_id
INNER JOIN
sys.allocation_units a ON p.partition_id = a.container_id
LEFT OUTER JOIN
sys.schemas s ON t.schema_id = s.schema_id
GROUP BY
t.NAME, s.NAME, p.Rows
ORDER BY
TotalSpaceMB DESC;