Azure Synapse Analytics の専用 SQL プール (旧称 SQL DW) のトラブルシューティング

この記事では、Azure Synapse Analytics の専用 SQL プール (旧称 SQL DW) における一般的な問題のトラブルシューティングについて説明します。

接続する

問題 解決方法
ユーザー ' NT AUTHORITY\ANONYMOUS LOGON' はログインできませんでした。 (Microsoft SQL Server、エラー:18456) このエラーは、Microsoft Entra ユーザーが master データベースに接続しようとするが、master にユーザーがいない場合に発生します。 この問題を解決するには、接続時に接続する専用 SQL プール (旧称 SQL DW) を指定するか、master データベースにユーザーを追加します。 詳細については、「セキュリティの概要」を参照してください。
サーバー プリンシパル "MyUserName" が、現在のセキュリティ コンテキストでデータベース master にアクセスできません。 ユーザーの既定データベースを開けません。 ログインできませんでした。 ユーザー 'MyUserName' はログインできませんでした。 (Microsoft SQL Server、エラー:916) このエラーは、Microsoft Entra ユーザーが master データベースに接続しようとするが、master にユーザーがいない場合に発生します。 この問題を解決するには、接続時に接続する専用 SQL プール (旧称 SQL DW) を指定するか、master データベースにユーザーを追加します。 詳細については、「セキュリティの概要」を参照してください。
CTAIP エラー このエラーは、ログインが特定の SQL データベースではなく、SQL Database master データベース上で作成された場合に発生する可能性があります。 このエラーが発生した場合は、 セキュリティの概要 に関する記事を参照してください。 この記事では、master データベースにログインとユーザーを作成する方法、および SQL データベースにユーザーを作成する方法について説明します。
ファイアウォールによってブロックされる 専用 SQL プール (旧称 SQL DW) は、ファイアウォールによって保護されており、既知の IP アドレスのみがデータベースにアクセスできます。 ファイアウォールは、既定でセキュリティ保護されています。つまり、接続する前に、IP アドレスまたはアドレス範囲を明示的に有効にする必要があります。 ファイアウォールでアクセスを構成するには、プロビジョニングの手順クライアント IP 用のサーバー ファイアウォール アクセスの構成に関するセクションの手順に従ってください。
ツールまたはドライバーで接続できない 専用 SQL プール (旧称 SQL DW) では、SQL Server Management Studio (SSMS)SSDT for Visual Studio、または sqlcmd を使用してデータのクエリを実行することをお勧めします。 ドライバーの詳細や Azure Synapse への接続の詳細については、Azure SQL Data Warehouse のドライバーに関する記事および Azure Synapse への接続に関する記事をご覧ください。

ツール

問題 解決策
Visual Studio オブジェクト エクスプローラーに Microsoft Entra ユーザーが表示されない これは既知の問題です。 回避策として、ユーザーを sys.database_principals で表示してください。 専用 SQL プール (旧称 SQL DW) での Microsoft Entra ID の使用方法の詳細については、Azure Synapse に対する認証に関する記事を参照してください。
手動でのスクリプト作成、スクリプト作成ウィザードの使用、または SSMS を介した接続が、遅かったり、応答しなかったり、エラーが発生したりする ユーザーが master データベース内に作成されているかどうかを確認してください。 また、スクリプト作成オプションで、エンジンのエディションが "Microsoft Azure Synapse Analytics Edition" と設定されており、エンジンの種類が "Microsoft Azure SQL Database" となっていることも確認してください。
SSMS でスクリプト生成に失敗する [依存オブジェクトのスクリプトを生成する] オプションが [True] に設定されている場合、専用 SQL プール (以前 SQL DW) のスクリプトを生成できません。回避策として、ユーザーは手動で [ツール]->[ オプション]-> SQL Server オブジェクトエクスプローラー->[依存オプションのスクリプトを生成する]と [false] に設定する必要があります。

データの取り込みと準備

問題 解決方法
CETAS を使用して空の文字列をエクスポートすると、Parquet と ORC のファイルの値が NULL になります。 NOT NULL 制約のある列から空の文字列をエクスポートする場合は、CETAS によってレコードが拒否され、エクスポートが失敗する可能性があることに注意してください。 CETAS の SELECT ステートメントで、空の文字列または問題のある列を削除します。
Parquet および ORC ファイル形式の tinyint 型の列に 0 ~ 127 の範囲外の値を読み込むことはサポートされていません。 ターゲット列に対してより大きなデータ型を指定してください。
メッセージ 105208、レベル 16、状態 1、行 1 オプション 'FROM' の値の検証時に次のエラーで COPY ステートメントが失敗しました: '105200;オプション 'FROM' の値が無効であるため、COPY ステートメントが失敗しました。' 現在、新しい DNS パーティション分割機能を使っている Azure ストレージ アカウントに COPY コマンドを使ってデータを取り込むと、エラーが発生します。 DNS パーティション機能を使うと、サブスクリプションあたり最大 5,000 個のストレージ アカウントを作成できます。 解決するには、新しい Azure Storage DNS パーティション機能 (現在パブリック プレビュー段階) を使っていないサブスクリプションに、ストレージ アカウントをプロビジョニングします。

パフォーマンス

問題 解決方法
クエリ パフォーマンスのトラブルシューティング 特定のクエリのトラブルシューティングを行う必要がある場合は、 クエリを監視する方法に関する記事を参照してください。
tempdb 領域に関する問題 TempDB の領域の使用状況を監視します。 tempdb の領域が不足する一般的な原因は次のとおりです。
- クエリに割り当てられたリソースが不足しているため、データが tempdb にスピルします。 ワークロード管理に関する記事を参照してください。
- 統計が不足しているか、期限切れのため、データ移動が過剰になっています。 統計を作成する方法の詳細については、テーブルの統計の管理に関する記事を参照してください。
- tempdb の領域はサービス レベルごとに割り当てられます。 より大きな DWU 設定に専用 SQL プール (旧称 SQL DW) をスケーリングすると、さらに多くの tempdb 領域が割り当てられます。
統計情報の不足を原因とする、クエリのパフォーマンス低下と不適切なプラン パフォーマンスの低下の最も一般的な原因は、テーブルの統計情報の不足です。 統計を作成する方法と、それらがパフォーマンスにとって重要な理由の詳細については、テーブルの統計の管理に関する記事をご覧ください。
低いコンカレンシーとキューに置かれたクエリ ワークロード管理 を理解することは、コンカレンシーでのメモリの割り当てのバランスを調整する方法を理解するために重要です。
ベスト プラクティスを実装する方法 クエリのパフォーマンスを向上させる方法については、専用 SQL プール (旧称 SQL DW) のベスト プラクティスに関する記事をご覧ください。
スケーリングでパフォーマンスを向上させる方法 専用 SQL プール (旧称 SQL DW) をスケーリングして、クエリのコンピューティング能力を強化するだけで、パフォーマンスを改善できる場合があります。
インデックスの品質が低いことによるクエリ パフォーマンスの低下 列ストア インデックスの品質の低さが原因で、クエリの処理速度が低下する場合があります。 詳しくは、「インデックスを再構築してセグメントの品質を向上する」をご覧ください。

システム管理

問題 解決方法
メッセージ 40847:サーバーが許容データベース トランザクション単位クォータ 45000 を超えることになるため、操作を実行できませんでした。 作成しようとしているデータベースの DWU を減らすか、クォータの引き上げを要求してください。
領域使用率の調査 システムの領域使用率の詳細については、 テーブルのサイズ に関するトピックをご覧ください。
テーブルの管理に関するヘルプ テーブルの管理については、テーブルの概要に関する記事をご覧ください。 詳しくは、テーブルのデータ型テーブルの分散テーブルのインデックス作成テーブルのパーティション分割テーブルの統計の管理一時テーブルに関する各記事をご覧ください。
Azure portal で、透過的なデータ暗号化 (TDE) の進行状況バーが更新されない PowerShell を使用すると、TDE の状態を表示できます。

SQL Database との違い

問題 解決方法
サポートされていない SQL Database の機能 サポートされていないテーブルの機能」をご覧ください。
サポートされていない SQL Database のデータ型 サポートされていないデータ型」をご覧ください。
ストアド プロシージャの制限事項 ストアド プロシージャの制限事項のいくつかを理解するには、 ストアド プロシージャの制限事項 に関するページをご覧ください。
UDF が SELECT ステートメントをサポートしていない これは、UDF の現在の制限です。 サポートされている構文については、 CREATE FUNCTION に関するページをご覧ください。

次のステップ

問題の解決策は、以下のその他のリソースで探してみることができます。