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