2
SQL数据仓库中的“Create table as”函数是否在后台创建统计信息,还是必须手动创建它们(就像我在执行普通“Create table”语句时一样? )Azure SQL数据仓库CTAS统计
SQL数据仓库中的“Create table as”函数是否在后台创建统计信息,还是必须手动创建它们(就像我在执行普通“Create table”语句时一样? )Azure SQL数据仓库CTAS统计
由于当前版本中,你总是有上创建表的列级统计信息,不管它是否具有正常CREATE TABLE
或CTAS CREATE TABLE AS...
命令创建的。为JOINs,WHERE子句,GROUP BY,ORDER BY和DISTINCT子句中使用的列创建统计信息也是很好的做法。
关于使用CTAS创建的表,数据库引擎正确地知道表中有多少行,如sys.partitions
中所列,但不在列级统计级别。对于由CREATE TABLE
创建的表,此默认值为1,000行。对于下面的例子中,第一表用CTAS创建并具有208行,与来自该第一表的普通CREATE TABLE
和INSERT
第二表,并且还具有208行,但sys.partitions
认为它具有1000例如
手动创建任何列级统计信息都会更正此数字。
总之,无论表格是如何创建的,总是要手动创建重要列的统计信息。