适用于:Azure Synapse Analytics(仅限专用 SQL 池)
为当前会话启用或禁用 Azure Synapse 分发顾问。 有关使用分发顾问的说明和示例,请参阅 Azure Synapse SQL 中的分发顾问。
注意
对于 Azure Synapse Analytics,分发顾问功能目前仅提供预览版。 预览功能仅用于测试,不应用于生产实例或生产数据。 作为预览功能,分发顾问可能会在行为或功能方面发生变化。 如果数据很重要,还请保留测试数据的副本。
语法
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