返回首页

gbase数据、南大通用产品文档:GBase8a;"+

更新日期:2024年09月11日

"checkout timeout=0;initial pool size=24;max active size=2000;”+
"max idle lifetime=2880000;”+
"test on borrow=true;test on return=true;test while idle=true;”+
"invalid idle test period=30;supply idle period=20;load balance
strategy=polling;max inuse lifetime=0;";

Thread[] _WorkThread = new Thread[_thread];
for (int i = 0; i < _WorkThread.Length; i++)

GBase 8a 程序员手册ADO.NET 篇


- 60 -

南大通用数据技术股份有限公司
{
new Thread(WorkThread).Start(enableNewPoolStr);
Thread.Sleep(300);
}
while (true)
{
if (_finish >= _thread) break;
Thread.Sleep(2000);
}
// release resources
GBaseConnection.ClearAllClusterPools();
}

///


/// 主工作线程
///

private void WorkThread(Object _ConnectionStringObj)
{
String _ConnectionString =
(String)_ConnectionStringObj;
int times = _runTime;
while (times!=0)
{
try
{
using (GBaseConnection _ConnObject =
new GBaseConnection(_ConnectionString))
{
_ConnObject.Open();
using (GBaseCommand _CmdObject =
new GBaseCommand())
{
_CmdObject.CommandText = "SELECT
sleep(1)";
_CmdObject.Connection = _ConnObject;
_CmdObject. ExecuteNonQuery();
}



GBase 8a 程序员手册ADO.NET 篇
南大通用数据技术股份有限公司

- 61 -
_ConnObject.Close();
_ConnObject.Dispose();
}
}
catch (GBaseException ex)
{
System.Diagnostics.Debug.WriteLine(ex.Messag
e);
}
Thread.Sleep(200);
times--;
}
_finish++;
}
}
}

使用 DEF_TABLE_LOCKMODE 配置参数来指定新表在页级或行级的锁模式。
onconfig.std 值
PAGE

PAGE = 为新表设置页的锁模式
ROW = 为新表设置行的锁模式
生效
编辑 onconfig 文件并重启数据库服务器之后。
当您通过运行 onmode -wf 命令在 onconfig 中动态地重置该值时。
当您通过运行 onmode -wm 命令重置内存中的该值时。
优先规则
通过在 CREATE TABLE 或 ALTER TABLE 语句中包括 LOCK MODE 子句,您可取代
对于特定表的所有其他锁模式。
在客户端设置的 IFX_DEF_TABLE_LOCKMODE 环境变量优先于服务器上的变量和
DEF_TABLE_LOCKMODE 配置参数。
在服务器上设置的 IFX_DEF_TABLE_LOCKMODE 环境变量优先于
DEF_TABLE_LOCKMODE 配置参数。
用法
如果 DEF_TABLE_LOCKMODE 配置参数设置为 ROW,
对于连接到日志记录或非日志记
录数据库的所有会话,则将每一个新创建表的锁模式都设置到行。该参数不影响现有表的
锁模式。
如果 DEF_TABLE_LOCKMODE 配置参数设置为 PAGE,则 USELASTCOMMITTED 配
置参数和 SET ISOLATION 语句的 COMMITTED READ LAST COMMITTED 选项不可

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 59 -

启用访问未提交事务持有排他锁的表中的最近提交数据,除非明确地创建或更改这些表将
ROW 作为其锁定粒度。

语法格式
create [temporary] table [if not exists] [vc_name.][database_name.]table_name
(create_definition,...)
create_definition:
col_name column_definition
column_definition:
data_type [not null] [default default_value]
[auto_increment] [primary key]
表5- 85 参数说明
参数名称


vc_name
vc 名,可选项。
database_name
数据库名,可选项。
table_name
表名。
data_type
data_type 为tinyint、smallint、int、bigint。
说明

自增列的属性必须为not null;

创建自增列时必须带primary key 关键字(8a 不支持primary key 功
能,此处primary key 仅作为语法兼容);

每个表最多只能有一个自增列。

自增列不能是hash 分布列
示例
示例1:随机分布表上创建自增列

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1015
gbase> CREATE TABLE t1(name varchar(10),id int not null primary key
auto_increment);
Query OK, 0 rows affected (Elapsed: 00:00:00.08)
gbase> SHOW CREATE TABLE t1 \G
*************************** 1. row ***************************
Table: t1
Create Table: CREATE TABLE "t1" (
"name" varchar(10) DEFAULT NULL,
"id" int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY ("id")
)
ENGINE=EXPRESS
DEFAULT
CHARSET=utf8
TABLESPACE='sys_tablespace'
1 row in set (Elapsed: 00:00:00.00)
示例2:复制表上创建自增列
gbase> CREATE TABLE t2(a int not null primary key auto_increment, b
varchar(100)) replicated;
Query OK, 0 rows affected (Elapsed: 00:00:00.08)
gbase> SHOW CREATE TABLE t2 \G
*************************** 1. row ***************************
Table: t2
Create Table: CREATE TABLE "t2" (
"a" int(11) NOT NULL AUTO_INCREMENT,
"b" varchar(100) DEFAULT NULL,
PRIMARY KEY ("a")
)
ENGINE=EXPRESS
REPLICATED
DEFAULT
CHARSET=utf8
TABLESPACE='sys_tablespace'

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1016
1 row in set (Elapsed: 00:00:00.00)
示例3:哈希分布表上创建自增列
gbase> CREATE TABLE t3(name varchar(10),id int not null primary key
auto_increment) distributed by ('name');
Query OK, 0 rows affected (Elapsed: 00:00:00.08)
gbase> SHOW CREATE TABLE t3 \G
*************************** 1. row ***************************
Table: t3
Create Table: CREATE TABLE "t3" (
"name" varchar(10) DEFAULT NULL,
"id" int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY ("id")
) ENGINE=EXPRESS DISTRIBUTED BY('name') DEFAULT CHARSET=utf8
TABLESPACE='sys_tablespace'
1 row in set (Elapsed: 00:00:00.00)
示例4:分区表上创建自增列
gbase> CREATE TABLE t4(i int default 0,id int auto_increment primary
key )
partition by range(i) partitions 2
subpartition by hash(i) subpartitions 2
(
partition
p0 values less than (50001)
(subpartition sb0,
subpartition sb1
),
partition
p1 values less than (100001)

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1017
(subpartition sb10,
subpartition sb11
)
) ;
Query OK, 0 rows affected (Elapsed: 00:00:00.11)
gbase> SHOW CREATE TABLE t4 \G
*************************** 1. row ***************************
Table: t4
Create Table: CREATE TABLE "t4" (
"i" int(11) DEFAULT '0',
"id" int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY ("id")
)
ENGINE=EXPRESS
DEFAULT
CHARSET=utf8
TABLESPACE='sys_tablespace'
PARTITION BY RANGE (i)
SUBPARTITION BY HASH (i)
(PARTITION p0 VALUES LESS THAN (50001)
(SUBPARTITION sb0 ENGINE = EXPRESS,
SUBPARTITION sb1 ENGINE = EXPRESS),
PARTITION p1 VALUES LESS THAN (100001)
(SUBPARTITION sb10 ENGINE = EXPRESS,
SUBPARTITION sb11 ENGINE = EXPRESS))
1 row in set (Elapsed: 00:00:00.01)