本文列出 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 資料庫 master 資料庫上建立登入,但未在特定 SQL 資料庫上建立,則會發生這個錯誤。 如果您遇到這個錯誤,請查看 安全性概觀 一文。 本文說明如何在 master 資料庫上建立登入和使用者,接著如何在 SQL 資料庫上建立使用者。 |
| 遭到防火牆封鎖 | 為確保只有已知 IP 位址擁有資料庫的存取權,專用 SQL 集區 (先前稱為 SQL DW) 受到防火牆所保護。 防火牆預設將會受到保護,因此您在可以連線之前,必須明確啟用單一 IP 位址或位址範圍。 若要設定防火牆的存取,請遵循佈建指示中設定用戶端 IP 的伺服器防火牆存取的步驟。 |
| 無法與工具或驅動程式連線 | 專用 SQL 集區 (先前稱為 SQL DW) 建議使用 SQL Server Management Studio (SSMS)、SSDT for Visual Studio 或 sqlcmd 來查詢您的資料。 如需驅動程式和連接到 Azure Synapse 的詳細資訊,請參閱 Azure Synapse 的驅動程式和連線到 Azure Synapse文章。 |
工具
| 問題 | 解決方案 |
|---|---|
| Visual Studio 物件總管中遺漏 Microsoft Entra 使用者 | 這是已知的問題。 解決方法是在 sys.database_principals 中檢視使用者。 若要深入了解使用 Microsoft Entra ID 與專用 SQL 集區 (先前稱為 SQL DW),請參閱 Azure Synapse 的驗證 (部分機器翻譯)。 |
| 手動撰寫指令碼、使用指令碼精靈,或透過 SSMS 連線很緩慢、無回應或產生錯誤 | 請確定已在 master 資料庫中建立使用者。 在指令碼選項中,也請確定引擎版本已設定為「Microsoft Azure Synapse Analytics 版本」,且引擎類型為「Microsoft Azure SQL Database」。 |
| 無法在 SSMS 中產生指令碼 | 如果 [產生相依物件的指令碼] 選項設定為 "True",則無法產生專用 SQL 集區 (先前稱為 SQL DW) 的指令碼。因應措施是,使用者必須手動移至 [工具] -> [選項] -> [SQL Server 物件總管] -> [產生相依物件的指令碼] 選項,並設定為 false |
資料內嵌和準備
| 問題 | 解決方案 |
|---|---|
| 使用 CETAS 匯出空字串會在 Parquet 和 ORC 檔案中產生 Null 值。 注意:如果您要從具有 NOT NULL 條件約束的資料行匯出空字串,則 CETAS 會產生拒絕的記錄,而且匯出可能會失敗。 | 移除 CETAS 的 SELECT 陳述式中的空字串或違規資料行。 |
| 不支援將 0-127 範圍以外的值載入至 Parquet 和 ORC 檔案格式的 Tinyint 資料行。 | 為目標資料行指定較大的資料類型。 |
| 驗證選項 'FROM' 的值時,訊息 105208,層級 16,狀態 1,行 1 COPY 語句失敗,並出現下列錯誤:'105200;COPY 語句失敗,因為選項 'FROM' 的值無效。 | 目前,使用 COPY 命令將資料擷取至使用新 DNS 資料分割功能的 Azure 儲存體帳戶會導致錯誤。 DNS 分割區功能可讓客戶為每個訂用帳戶建立最多 5000 個儲存體帳戶。 若要解決,請在未使用新 Azure 儲存體 DNS 磁碟分割功能 (目前處於公開預覽) 的訂用帳戶中佈建儲存體帳戶。 |
效能
| 問題 | 解決方案 |
|---|---|
| 查詢效能疑難排解 | 如果您正試著針對特定查詢進行疑難排解,請從 了解如何監視查詢開始。 |
tempdb 空間問題 |
監視 TempDB 空間使用量。
tempdb 執行空間不足的常見原因如下:- 配置給查詢的資源不足,導致資料溢出到 tempdb。 請參閱工作負載管理 - 統計資料遺失或過期,因而造成過多的資料移動。 如需有關如何建立統計資料的詳細資料,請參閱維護資料表統計資料 - 每個服務層級皆配置 tempdb 空間。
縮放您的專用 SQL 集區 (先前稱為 SQL DW),將其調整為較高的 DWU 設定,進而配置更多 tempdb 空間。 |
| 查詢效能和計劃不佳通常是因為遺漏統計資料 | 效能不佳最常見的原因是缺乏資料表的統計資料。 如需有關如何建立統計資料,以及這對於效能為何重要的詳細資訊,請參閱維護資料表統計資料。 |
| 並行存取低落/排入佇列的查詢偏少 | 為了瞭解如何平衡記憶體配置與並行存取,必須先了解 工作負載管理 。 |
| 如何實作最佳作法 | 專用 SQL 集區 (先前稱為 SQL DW) 最佳做法一文是學習改善查詢效能的最佳起點。 |
| 如何透過調整來提升效能 | 有時,只要縮放您的專用 SQL 集區 (先前稱為 SQL DW)來提升查詢的計算能力,即可改善效能。 |
| 索引品質不佳導致查詢效能不佳 | 有時,查詢會因為資料行存放區索引品質不佳而變慢。 如需詳細資訊,請參閱重建索引以改善區段品質。 |
系統管理
| 問題 | 解決方案 |
|---|---|
| 訊息 40847:無法執行這項作業,因為伺服器可能會超過允許的資料庫交易單位配額 45000。 | 減少您正在嘗試建立的資料庫 DWU,或是要求增加配額。 |
| 調查空間使用量 | 請參閱 資料表大小 ,以了解您系統的空間使用量。 |
| 協助管理資料表 | 請參閱資料表概觀一文,以協助管理您的資料表。 如需詳細資訊,請參閱資料表資料類型、散發資料表、編製資料表的索引、分割資料表、維護資料表統計資料及暫存資料表。 |
| Azure 入口網站中的透明資料加密 (TDE) 進度列不會更新 | 您可以透過 PowerShell 檢視 TDE 的狀態。 |
與 SQL Database 不同之處
| 問題 | 解決方案 |
|---|---|
| 不支援的 SQL Database 功能 | 請參閱 不支援的資料表功能。 |
| 不支援的 SQL Database 資料類型 | 請參閱 不支援的資料類型。 |
| 預存程序限制 | 請參閱 預存程序限制 ,以了解預存程序的一些限制。 |
| UDF 不支援 SELECT 陳述式 | 這是 UDF 目前的限制。 關於我們支援的語法,請參閱 CREATE FUNCTION 。 |
下一步
如需更多尋找問題解決方案的協助,以下是您可以嘗試的其他資源。