Netezza 性能优化
Netezza Performance Optimization
我开始在 Aginity 上使用 Netezza 来处理每个 table 的数百万条记录。我一直在网上阅读有关如何优化 tables 以便加载数据和 运行ning 查询相对较快的信息,我有几个问题。
1) 我读到的一件事是,您在创建 table 时选择的分布将影响您查询 table 的速度。大多数情况下,最好在主键上分配吗?假设没有主键,但 table 中有外键,是分布在两个外键上好还是只分布在一个外键上好?
2) 我读到了 运行宁这个查询:
SELECT count(*), datasliceid from SCHEMA.TableName group by datascliceid ordery by datasliceid
因此,在执行此操作时,我注意到每个 datasliceid 的最小数据数为 21,530,最大值为 22,456。返回了 240 个 datasliceid。这样好还是应该更均匀地分布数据?
3) 最后但同样重要的是,我正在尝试 运行:
generate statistics on SCHEMA.TABLENAME
在 Aginity 内部,但是当我这样做时,我只收到消息 The command completed successfully
,但没有任何显示。我如何查看这些信息?
我试试看:
1) 只担心真正大表的分布(对所有 small/medium 个表进行随机分配)
除此之外:只在一个专栏上分发,并且只有当你经常加入它时
2) 在我看来,这种分布没有倾斜。不用担心。
3) 当您更新数据库中的统计信息时,主要是为了让数据库优化器在您 运行(复杂)sql 反对它时做出更好的选择。但是,您之后可以从目录表中读回该信息。可以在网上找到查询:)
我开始在 Aginity 上使用 Netezza 来处理每个 table 的数百万条记录。我一直在网上阅读有关如何优化 tables 以便加载数据和 运行ning 查询相对较快的信息,我有几个问题。
1) 我读到的一件事是,您在创建 table 时选择的分布将影响您查询 table 的速度。大多数情况下,最好在主键上分配吗?假设没有主键,但 table 中有外键,是分布在两个外键上好还是只分布在一个外键上好?
2) 我读到了 运行宁这个查询:
SELECT count(*), datasliceid from SCHEMA.TableName group by datascliceid ordery by datasliceid
因此,在执行此操作时,我注意到每个 datasliceid 的最小数据数为 21,530,最大值为 22,456。返回了 240 个 datasliceid。这样好还是应该更均匀地分布数据?
3) 最后但同样重要的是,我正在尝试 运行:
generate statistics on SCHEMA.TABLENAME
在 Aginity 内部,但是当我这样做时,我只收到消息 The command completed successfully
,但没有任何显示。我如何查看这些信息?
我试试看: 1) 只担心真正大表的分布(对所有 small/medium 个表进行随机分配) 除此之外:只在一个专栏上分发,并且只有当你经常加入它时 2) 在我看来,这种分布没有倾斜。不用担心。 3) 当您更新数据库中的统计信息时,主要是为了让数据库优化器在您 运行(复杂)sql 反对它时做出更好的选择。但是,您之后可以从目录表中读回该信息。可以在网上找到查询:)