ado 操作 性能有关问题
ado 操作 性能问题
我现在做一件事情就是把一个dbf的文件里的数据存放到sql server里头,dbf用了一个dbf操作类,经过测试读取记录的速度还可以。每读取一条记录以后把记录的各项值存放到一个表示sql server表结构的struct中如record,然后作了一下处理,然后再把这个record传入到插入函数里,这里拼接一个insert语句,然后再用_connectionPtr的Execute方法,
p_connect_db-> Execute(sql,NULL,adOptionUnspecified);
参数为adOptionUnspecified来执行,dbf中大概有1000条数据,问题是在做连续插入操作的时候sql server占用cpu将近20-30%左右,程序有个界面,界面响应都接收不了了,这是怎么回事情呢,又没有什么性能瓶颈,表大概有30个字段,
大家又没有什么想法
------解决方案--------------------
不要放到主线程里边处理,界面自然就有响应了!
------解决方案--------------------
效率,如果你把操作放到线程里边的话,CPU站用可能会小些!还能进行相关控制
------解决方案--------------------
数据库操作不要放在UI线程里,独立到子线程中
CPU占用不会有明显变化,但是至少不会让你感觉程序像死了一样
------解决方案--------------------
建立一个工作线程,在这个线程中处理数据,然后在主界面中显示处理过程的进度。
我现在做一件事情就是把一个dbf的文件里的数据存放到sql server里头,dbf用了一个dbf操作类,经过测试读取记录的速度还可以。每读取一条记录以后把记录的各项值存放到一个表示sql server表结构的struct中如record,然后作了一下处理,然后再把这个record传入到插入函数里,这里拼接一个insert语句,然后再用_connectionPtr的Execute方法,
p_connect_db-> Execute(sql,NULL,adOptionUnspecified);
参数为adOptionUnspecified来执行,dbf中大概有1000条数据,问题是在做连续插入操作的时候sql server占用cpu将近20-30%左右,程序有个界面,界面响应都接收不了了,这是怎么回事情呢,又没有什么性能瓶颈,表大概有30个字段,
大家又没有什么想法
------解决方案--------------------
不要放到主线程里边处理,界面自然就有响应了!
------解决方案--------------------
效率,如果你把操作放到线程里边的话,CPU站用可能会小些!还能进行相关控制
------解决方案--------------------
数据库操作不要放在UI线程里,独立到子线程中
CPU占用不会有明显变化,但是至少不会让你感觉程序像死了一样
------解决方案--------------------
建立一个工作线程,在这个线程中处理数据,然后在主界面中显示处理过程的进度。