SET RECOMMENDATIONS (Transact-SQL)

适用于:Azure Synapse Analytics(仅限专用 SQL 池)

为当前会话启用或禁用 Azure Synapse 分发顾问。 有关使用分发顾问的说明和示例,请参阅 Azure Synapse SQL 中的分发顾问

注意

对于 Azure Synapse Analytics,分发顾问功能目前仅提供预览版。 预览功能仅用于测试,不应用于生产实例或生产数据。 作为预览功能,分发顾问可能会在行为或功能方面发生变化。 如果数据很重要,还请保留测试数据的副本。

Transact-SQL 语法约定

语法

SET RECOMMENDATIONS { ON | OFF };

参数

ON

为当前客户端会话启用分发顾问。 随后,将考虑运行查询来获取分发策略建议。

OFF

禁用当前客户端会话的分发顾问。 以字符串的形式返回建议。

备注

仅适用于 Azure Synapse Analytics(仅限专用 SQL 池)。

连接到用户数据库时运行此命令。

权限

要求具有 public 角色的成员身份。

示例

以下示例将返回针对所选 TPC-DS 查询的分发建议。 TPC-DS 是分析决策支持工作负载的行业标准基准。

首先,开始分发顾问建议收集并运行示例查询。

-- Step 1: Turn the distribution advisor ON for the current client session
SET RECOMMENDATIONS ON;
GO

-- <insert your queries here, up to 100>
SELECT ss_store_sk, COUNT(*) FROM store_sales, store WHERE ss_store_sk = s_store_sk GROUP BY ss_store_sk;

SELECT cs_item_sk, COUNT(*) FROM catalog_sales, item WHERE cs_item_sk = i_item_sk  AND i_manufact_id > 100 GROUP BY cs_item_sk;

SELECT * FROM dbo.reason;

-- Turn the distribution advisor OFF for the current client session.
SET RECOMMENDATIONS OFF;
GO

从当前会话的动态管理视图 sys.dm_pdw_distrib_advisor_results 中收集建议。 例如:


-- Step 2: view advice generated for the above workload
DECLARE @sessionid nvarchar(100), @recommendation nvarchar(max);
SELECT @sessionid = SESSION_ID();
SELECT @recommendation = recommendation FROM sys.dm_pdw_distrib_advisor_results WHERE session_id = @sessionid;
SELECT @recommendation;
GO

后续步骤