编写一个工具以编程方式检查 Netezza(纯数据)是不是存在偏差并获取查询计划

Posted

技术标签:

【中文标题】编写一个工具以编程方式检查 Netezza(纯数据)是不是存在偏差并获取查询计划【英文标题】:Write a tool to programmatically check Netezza (Pure Data) for skew and get query plan编写一个工具以编程方式检查 Netezza(纯数据)是否存在偏差并获取查询计划 【发布时间】:2015-01-10 03:53:07 【问题描述】:

我正在考虑编写一个连接到具有以下功能的 Netezza 盒子的 .NET 工具的想法: 1.检查表格输入列表的分布/偏差 2. 检查输入查询的查询计划

我知道使用 Aginity Workbench 和/或 NZADmin 可以做到这一点,但我想知道是否有任何方法可以在代码中做到这一点,以便我可以进行一些自动调整?

我在网上查了答案,但似乎很少有关于如何做到这一点或是否可行的信息。

【问题讨论】:

【参考方案1】:

这是可能的,但可能需要相当多的工作。

Aginity 使用 Netezza 的 SQL 风格与 Netezza 进行通信。 你可以用同样的方式编写你自己的客户端。

例如,要获取查询的查询计划,请使用“EXPLAIN VERBOSE”

EXPLAIN VERBOSE SELECT * FROM foo;

要获得偏斜,请运行此查询

 select count(*) , datasliceid from mytable group by datasliceid order by datasliceid; 

等等..

即使 Aginity 或 nzAdmin 使用未记录的功能(使用系统视图获取硬件状态等),也可以从 .Net 执行相同操作。 您可以尝试通过启用 odbc 跟踪或启用主机上的日志记录来跟踪他们的具体操作。

【讨论】:

谢谢,会试试的。【参考方案2】:

您还可以使用 /nz/support/bin 下的无数脚本作为出色的模板来绘制。

nz_skew nz_plan nz_view_plan_file 还有许多其他

【讨论】:

以上是关于编写一个工具以编程方式检查 Netezza(纯数据)是不是存在偏差并获取查询计划的主要内容,如果未能解决你的问题,请参考以下文章

函数式编程

Netezza 数据库项目

以编程方式检查 Windows 是不是已使用 C++ 激活

以编程方式启用 gps 的问题

Netezza 与 C++ 的连接

mybais学习————纯jdbc编程