更新日期:2024年09月11日
GBase 8a ODBC 体系结构是基于五个组件,在下图中所示:
图 2-1 GBase 8a ODBC 体系结构图
应用
应用是通过调用ODBC
API 实现对GBase 数据访问的程序。应用使用标准的
ODBC 调用与驱动程序管理器通信。应用并不关心数据存储在哪里,如何存储的
或者系统如何配置来访问数据。它只需要知道数据源名字(DSN)
。
不管应用程序如何使用ODBC,它们有许多共同的操作:
选择GBase 服务器并连接它
提交SQL 语句执行
获得结果(如果有的话)
处理错误
执行或回滚包含在SQL 语句中的事务
GBase 8a 程序员手册ODBC 篇
- 6 -
南大通用数据技术股份有限公司
断开到GBase 服务器的连接
大多数的数据访问工作都是由SQL 完成的,
使用ODBC 的应用主要任务就是
提交SQL 语句并获得由这些语句产生的结果。
驱动管理器
驱动管理器是一个管理应用与驱动程序之间通信的库。
它执行下面的任务:
解析数据源名字(DSN)
驱动程序装载和卸载
处理ODBC 函数调用或将它们传递给驱动程序
GBase 8a ODBC 驱动程序
GBase 8a ODBC 驱动程序是一个实现了ODBC API 的函数库。它处理ODBC
函数调用,提交对GBase 服务器的SQL 请求,并返回结果给应用程序。如果需
要,GBase 8a ODBC 驱动程序将修改客户发出的请求以便于使该请求符合GBase
数据库支持的语法。
ODBC.INI
ODBC.INI 是ODBC 配置文件,该文件储存了GBase
8a
ODBC 驱动程序连接服
务器和数据库的相关信息。例如:GBase
8a
ODBC 驱动程序管理器通过ODBC.INI
中的相关信息来决定装载哪个驱动程序。GBase
8a
ODBC 驱动程序基于相对应的
DSN,系统使用它来读取连接参数。
GBase 服务器
GBase 服务器是数据源。它是一个关系数据库管理系统(RDBMS)
。
问题现象
集群重启后,性能较高,随着测试继续,性能表现逐渐衰减。
解决方法
默认情况下,
TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES 只有32M ,
此环境变量代表线程本地化内存总量,当小查询高并发时,会导致加锁回收和申
请。导致性能下降。
调整tcmalloc 环境变量可以改善此情况,具体步骤如下:
修改.bashrc 增加如下环境变量:
TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=1073741824
cexec killall gbased
//记住一定不能使用“cexec gcluster_servivce
gbase stop” 等命令重启gbased,这样会导致环境变量不生效。