greenplum analyze与explain关键字

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/double_happiness/article/details/83274072

analyze:analyze操作会进 优化统计收集,优化统计的性能由参数default_statistics_target决定,参数设置的越,优化得到最优执计划越,但是收集操作的代价也就越大,耗时越长。
analyze运行时机 :

  • 数据装载完成;
  • 创建完索引;
  • 显著 改底层数据的insert、update、delete操作后analyze仅在表上要求个读锁,因此与其他数据库之间是并运的,但是不要在执装载INSERT、UPDATE、DELETE以及CREATE INDEX操作期间运 。

explain:为每个收到的查询设计一个查询规划。选择正确的匹配查询结构和数据属性的规划对执行效率是至关重要要的,所以系统包含一个复杂的规划器来试图选择好的规划。你可以使用EXPLAIN命令查看查询规划器创建的任何查询。

explain (analyze,verbose,costs,buffers,timing) select * from xxxx;
explain参数解释: 
ANALYZE :执行命令并显示执行事件,默认false 
VERBOSE :对执行计划提供额外的信息,如查询字段信息等,默认false 
COSTS :显示执行计划的,默认true 
BUFFERS :默认false,前置条件是analyze 
FORMAT :默认格式是text 
PostgreSQL的cost常量如下 : 
seq_page_cost  -- 连续块扫描操作的单个块的cost. 例如全表扫描
random_page_cost  -- 随机块扫描操作的单个块的cost. 例如索引扫描
cpu_tuple_cost  -- 处理每条记录的CPU开销
cpu_index_tuple_cost  -- 扫描每个索引条目带来的CPU开销
cpu_operator_cost  -- 操作符或函数带来的CPU开销.(需要注意函数以及操作符对应的函数的三态, 执行计划会根据三态做优化, 关系到多条记录时三态对应的调用次数是需要关心的)

猜你喜欢

转载自blog.csdn.net/double_happiness/article/details/83274072