对double数值进行round取舍结果不是四舍五入
对double类型数值进行round取舍，结果不是四舍五入。gbase> create table t(c1 double); Query OK, 0 rows affected (Elapsed: 00:00:00.55) gbase> insert into t values(41.325); Query OK, 1 row affected (Elapsed: 00:00:00.03) gbase> select c1,round(c1,2) from t; +--------+-------------+ | c1 | round(c1,2) | +--------+-------------+ | 41.325 | 41.32 | +--------+-------------+ 1 row in set (Elapsed: 00:00:00.00) [shrinks title="1、问题分析：" checked="checked"]DOUBLE代表一个浮点型数值，它所存储的数值不是一个准确值。所以造成了结果的差别。对double类型作round，采取了“四舍六入五凑偶”的规则。即“四舍”是指≤4 时舍去，"六入"是指≥6时进上，"五凑偶"指的是根据5后面的数字来定，当5后有数时，舍5入1；当5后无数或为0时，需要分两种情况来讲：①5前为奇数，舍5入1；②5前为偶数，舍5不进。[/shrinks][shrinks title="2、问题解决：" checked="checked"]可以通过转化数值字符为精确数值类型解决，如下：gbase> select c1,round(cast(c1 as decimal(16,5)),2) from t; +--------+------------------------------------+ | c1 | round(cast(c1 as decimal(16,5)),2) | +--------+------------------------------------+ | 41.325 | 41.33 | +--------+------------------------------------+ 1 row in set (Elapsed: 00:00:00.00)或者使用decimal精确数值类型gbase> create table tt(c1 decimal(16,3)); Query OK, 0 rows affected (Elapsed: 00:00:00.48) gbase> insert into tt values(41.325); Query OK, 1 row affected (Elapsed: 00:00:00.03) gbase> select c1,round(c1,2) from tt; +--------+-------------+ | c1 | round(c1,2) | +--------+-------------+ | 41.325 | 41.33 | +--------+-------------+ 1 row in set (Elapsed: 00:00:00.01)[/shrinks]
8611相比于8512，进程通信线程的优化有哪些
8611同一session下只在Coordinator节点下创建通信线程，和data节点之间的通信采用异步方式处理。
8611和8512都能支持ogg实时同步吗？通过ogg支持实时同步功能预计何时可提供上线项目使用？
目前ogg实时同步到8a基于8611版本开发，完成后可以移植到8512版本上，因此8611和8512版本都支持ogg实时同步，能够提供上线项目使用。
[shrinks title="1、UDF" checked="checked"]不支持扩容期间的存储过程形式的UDF。[/shrinks][shrinks title="2、Local Hash" checked="checked"]不支持 Local Hash，如：create index r_r on r(r) using hash local; [/shrinks][shrinks title="3、备份恢复" checked="checked"]不再提供专用的备份恢复工具(gcrcman)。 [/shrinks][shrinks title="4、Hadoop导入导出工具" checked="checked"]不再提供 GBase 8a MPP Cluster Hadoop 导入导出工具。[/shrinks]
[shrinks title="测试结论：" checked="checked"]1、借助排序和行存列，小查询并发最优吞吐量可以提升3倍2、最优配置为行存列+排序+索引，其次是：行存列+排序[/shrinks]
表在压缩率31和55下的对比测试性能如何？部署建议是什么？
在磁盘空间较充足的情况下，建议部署55压缩方式。[shrinks title="测试结论：" checked="checked"]1、查询、update、delete 等操作，31压缩比55压缩慢10%-30%；2、加载：31压缩比55压缩慢2倍；3、insert全表：31压缩比55压缩慢6倍。[/shrinks][shrinks title="测试过程：" checked="checked"]（1）压缩方式：31压缩和55压缩；（2）集群部署：4节点2分片86集群；（3）测试内容：tpch查询、加载、insert、update、delete。[/shrinks]
[shrinks title="方法1：" checked="checked"]无论是redhat还是suse系统，设置 ulimit -c unlimited，在程序宕机时就会生成core file。[/shrinks][shrinks title="方法2：" checked="checked"]在redhat系统下，修改 /etc/abrt/abrt-action-save-package-data.conf 文件ProcessUnpackaged = yes在/var/spool/abrt/ 会有相应core file。[/shrinks][info]注意:[/info]core file 生成路径： ll /proc/`pidof xx`/ | grep cwd例如：(1)dispserver在应用程序所在目录下(2)corosync 生成路径： /var/lib/corosync [/shrinks]
1、数据文件所占的磁盘空间回收以文件为单元，只有当这个数据文件涉及的数据都被删除后才能回收该文件占用的磁盘空间。2、Global Hash需要改成分段存储后才能释放其被Delete掉后的磁盘空间；如果两个列上都建有hash列，但key_dc_size大小不一样，则需要删除这两个key_dc_size的最小公倍数的DC个数后，才能真正的释放掉索引数据空间。全文索引与hash索引类似，全文索引也有一个库大小的概念。如果两个列上分别有全文索引和hash索引，则也需要满足最小公倍数原则。3、由于INSERT/LOADER需要使用尾块数据，因此尾块所在的文件不能删除，即最后两个文件不能删除（一个存了有效尾块，一个存了无效尾块）。
event_scheduler及集群定期清理表（DROP TEMPTABLE）的定时任务说明
在集群中，每个gcluster都存在一个user为event_scheduler的连接，如下：Id User Host db Command Time State Info 1 event_scheduler localhost NULL Daemon 60428 Waiting for next activation NULL event_scheduler用户用于进行数据库执行计划的执行。gbase集群的执行计划存储在gbase.event系统表中，查询该表可以看当前数据库定义的计划任务，默认如下：gbase> select * from gbase.event \G *************************** 1. row *************************** db: gbase name: drop_temp_table body: DROP TEMPTABLE definer: root@localhost execute_at: NULL interval_value: 1 interval_field: DAY created: 2015-01-30 10:07:34 modified: 2015-01-30 10:07:34 last_executed: 2015-03-23 02:07:34 starts: 2015-01-30 02:07:34 ends: NULL status: ENABLED on_completion: DROP sql_mode: ANSI_QUOTES,IGNORE_SPACE comment: originator: 0 time_zone: +08:00 character_set_client: utf8 collation_connection: utf8_general_ci db_collation: utf8_general_ci body_utf8: DROP TEMPTABLE 1 row in set (Elapsed: 00:00:00.00) [...]