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

时间:2015-01-10 03:53:07

标签: query-optimization netezza database-tuning

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

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

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

2 个答案:

答案 0 :(得分:3)

这是可能的,但它可能涉及很多工作。

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跟踪或启用主机登录来追踪他们的确切行为。

答案 1 :(得分:1)

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

  • nz_skew
  • nz_plan
  • nz_view_plan_file
  • 和其他许多人