OCILIB VC2008 效率测试

OCILIB VC2008 效率测试

2014年4月29日19:59:43

1、VS2008新建一个空的控制台程序。

2、源代码:

//test.cpp文件
#pragma comment(lib,"ociliba.lib")

#define OCI_CHARSET_ANSI

#include <ocilib.h>

#include<time.h>

#define  BEGIN_NUM 900000
#define  MAX_NUM   1000000

int main(void)
{
	clock_t start,finish;
	double duration;
	
	OCI_Connection *cn;

	if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT|OCI_ENV_CONTEXT))
		return EXIT_FAILURE;

	cn = OCI_ConnectionCreate("orcl", "etc_ctrlr", "itsmoe", OCI_SESSION_DEFAULT);

	OCI_Statement * st;
	st = OCI_StatementCreate(cn); 

	int nRet =0;

	start = clock();

	char strSQL[400] = {0};
	int nSN = BEGIN_NUM;
	sprintf(strSQL,"insert into LWW_TXF_TEST (SN,CARDID,MVLICENSE,ENTRYTIME) VALUES "
		"(%d,'123','seu',to_date('1999-09-12', 'YYYY-MM-DD'))",nSN);
	OCI_Prepare(st, strSQL);
	nRet = OCI_Execute(st);
	while (nSN<MAX_NUM)
	{
		nSN ++;
		sprintf(strSQL,"insert into LWW_TXF_TEST (SN,CARDID,MVLICENSE,ENTRYTIME) VALUES "
			"(%d,'123','seu',to_date('1999-09-12', 'YYYY-MM-DD'))",nSN);
		if(0 == nSN % 1000)
		{
			OCI_Commit(cn);

			if(nSN >= MAX_NUM)break;
			
			OCI_Prepare(st, strSQL);
			OCI_Execute(st);
		}
		else
		{
			 OCI_ExecuteStmt(st,strSQL);
		}
	}

	finish = clock();
	duration = double(finish - start)/CLOCKS_PER_SEC;
	printf("time used:%f ms\n",1000*duration);

	system("pause");

	OCI_Break(cn);

	OCI_Cleanup();

	return 0;
}
3、有唯一主键建表语句

create table LWW_TXF_TEST (SN NUMBER primary key,CARDID VARCHAR2(25),MVLICENSE VARCHAR2(20),ENTRYTIME DATE)
时间:

0到10万,128.7s;10万到20万,137.5s;20万到30万,139.0s;30万到40万,135.5s;40万到50万,131.2s;
50万到60万,136.0s;60万到70万,137.2s;70万到80万,131.2s;80万到90万,122.5s;90万到100万,134.5s.

4、没有主键建表语句

create table LWW_TXF_TEST (SN NUMBER,CARDID VARCHAR2(25),MVLICENSE VARCHAR2(20),ENTRYTIME DATE)

时间:

0到10万,125s;10万到20万,126.6s;20万到30万,130.0s;30万到40万,131.0s;40万到50万,125.1s;
50万到60万,124.0s;60万到70万,130s;70万到80万,128.3s;80万到90万,120.6s;90万到100万,131.5s.





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值