ADO自己是不是有连接池的?
为什么我建立两个连接后同时查询500次的时间比用一个连接查询1000的时间要长?
#include "DBManager.h"
DBManager a;
DBManager b;
static DWORD WINAPI handleSocketThread(LPVOID)
{
printf("begin thread time\n");
DWORD dwStartTicks1 = GetTickCount();
string pre="select * from mocity";
for(int i=0;i<100;i++)
{
// printf("a:%d\n",i);
a.executeQuery(pre);
}
printf("thread time:%d\n", GetTickCount()-dwStartTicks1);
return 0;
}
static DWORD WINAPI handleSocketThread1(LPVOID)
{
printf("begin thread1 time\n");
DWORD dwStartTicks1 = GetTickCount();
string pre="select * from mocity";
for(int i=0;i<100;i++)
{
// printf("b:%d\n",i);
b.executeQuery(pre);
}
printf("thread1 time:%d\n", GetTickCount()-dwStartTicks1);
return 0;
}
static DWORD WINAPI handleSocketThread2(LPVOID)
{
printf("begin thread2 time\n");
DWORD dwStartTicks1 = GetTickCount();
string pre="select * from mocity";
for(int i=0;i<500;i++)
{
a.executeQuery(pre);
}
printf("thread2 time:%d\n", GetTickCount()-dwStartTicks1);
return 0;
}
void main()
{
a.Open("Provider=sqloledb;Data Source=127.0.0.1;Initial Catalog=mocity", "sa", "1");
// b.Open("Provider=sqloledb;Data Source=127.0.0.1;Initial Catalog=mocity", "sa", "1");
DWORD id;
CreateThread(NULL, 1000, handleSocketThread, NULL, 0, &id);
// CreateThread(NULL, 1000, handleSocketThread1, NULL, 0, &id);
// CreateThread(NULL, 0, handleSocketThread2, NULL, 0, &id);
/*@**#---2003-12-01 20:13:29 (xinbao)---#**@
printf("begin main time\n");
DWORD dwStartTicks1 = GetTickCount();
string pre="select * from mocity";
for(int i=0;i<500;i++)
{
a.executeQuery(pre);
}
printf("main time:%d\n", GetTickCount()-dwStartTicks1);
*/
while(1)
Sleep(10000);
a.Close();
// b.Close();
}
问题点数:0、回复次数:1Top
1 楼MHB(秋天的风)回复于 2003-12-02 09:50:51 得分 0
连odbc都有连接池
ado也不例外(ado连接池的调用可以到microsoft.com去看看,半年前我在microsoft.com网上看到过关ado连接池的技术文章。)Top




