截断 table 但将统计信息保留在 Azure SQL 数据仓库中
Truncating table but leave statistics in place on Azure SQL Data Warehouse
我在一个应用程序中使用了一系列类似缓存的 table,我正在评估是否直接迁移到 Azure SQL 数据仓库。
该应用程序使用一系列类似缓存的 table,这些 table 被加载并用于连接事实 table(两个或三个维度,例如时间、位置、产品).类似缓存的 table 是通过应用程序共享的,不同的报告在一列中加载具有任意字符串的行作为标识符,并在事实 table.[=12= 中加载维度列的外键]
当 table 被截断时,统计信息似乎丢失了。是否可以通过提示等保持统计数据不变?
不,你不能在 'TRUNCATE' 之后保留统计数据。根据我的经验,无论如何,重新采样您的关键列(不使用 'FULL SCAN')不会花费那么长时间。这毕竟是一个MPP系统。
重新锁定,您应该知道 Azure 的默认事务隔离级别 SQL 数据仓库是读取未提交的,因此锁争用不是问题。
目前 Azure SQL 数据仓库中不提供欺骗统计技术。
我在一个应用程序中使用了一系列类似缓存的 table,我正在评估是否直接迁移到 Azure SQL 数据仓库。
该应用程序使用一系列类似缓存的 table,这些 table 被加载并用于连接事实 table(两个或三个维度,例如时间、位置、产品).类似缓存的 table 是通过应用程序共享的,不同的报告在一列中加载具有任意字符串的行作为标识符,并在事实 table.[=12= 中加载维度列的外键]
当 table 被截断时,统计信息似乎丢失了。是否可以通过提示等保持统计数据不变?
不,你不能在 'TRUNCATE' 之后保留统计数据。根据我的经验,无论如何,重新采样您的关键列(不使用 'FULL SCAN')不会花费那么长时间。这毕竟是一个MPP系统。
重新锁定,您应该知道 Azure 的默认事务隔离级别 SQL 数据仓库是读取未提交的,因此锁争用不是问题。
目前 Azure SQL 数据仓库中不提供欺骗统计技术。