提高IMP速度的几个方法

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Kamus/article/details/106685

这篇Tip来自于Jonathan Lewis的站点。

原文链接如下:

http://www.jlcomp.demon.co.uk/faq/imp_slow.html

为什么IMP速度慢?

1。IMP作了大量的跟普通方式一样的insert

2。IMP时候创建索引通常是logging的,产生了大量的undo和redo

如何提高IMP的速度

1。不建议使用commit参数,因为当imp失败的时候,会导致很多后续的麻烦事儿

2。增大buffer参数值,以便于一次读进更大的array

3。设置较大的初始化参数sort_area_size,以加快创建索引时候的排序速度

4。增大重作日志的大小,以减少log switch的次数,也就是减少checkpoint次数,减少写磁盘的次数

5。如果要往已经存在的表中追加数据,那么有些情况下,比如表中存在位图索引,那么最好先删除索引,再导入。否则更新索引时会产生大量等待。

6。使用indexfile和indexes参数,再导入数据之后再手工创建索引。

展开阅读全文

提高UART发送速度方法

07-29

大家好,小弟最近在写UART发送中断的时候遇到问题。rn用的是ADI的芯片,直接用寄存器进行操作。看了它的UART例程,用的是TX buffer empty中断。TX是一个8位寄存器。部分程序如下:rnrnvoid IRQ_Handler(void) __irqrnrn //UART中断内容,当TX空后产生中断,并给Main一个标识rn unsigned long ucCOMIID0 = 0;rn rn if ((IRQSTATUS & BIT11) == BIT11) //UART interrupt sourcern ucCOMIID0 = COMIID0; // read interrupt statern if ((ucCOMIID0 & 0x2) == 0x2) // Transmit buffer emptyrn rn ucTxBufferEmpty = 1; rn rnrnrnmain()rnrn// 前面的一些配置内容省略,下面是将一串字节通过UART发送的程序 rn for ( i = 0 ; i < nLen ; i++ ) rn rn COMTX = a[i]; rn while (ucTxBufferEmpty ==0);rn ucTxBufferEmpty = 0; rn rnrnrn假设a是一个多字节的数组。rn我的理解是每当把a的一个字节内容放到TX后,TX就开始发送到终端。当TX中的8位数据都发出去后,就产生一个中断,并把标识给Main,让它将第二个字节的内容赋给TX。这样就把几个字节的数据发出去了。我试验过,确实可行。rnrn(1)我的理解是否正确?rnrn但是我现在做的项目中,发现问题还是出现在UART发送的速度问题上。rn一个同事建议我不要用while (ucTxBufferEmpty ==0);等待数据发完,再发一个字节,说这样耗时多。rn说用读写指针的方法,如果读指针与写指针不在同一位置时,就继续发送。rnrn(2)我不知道这个算不算环形缓冲区的作法? 这样真能提高UART的发送速度吗?rnrn(3)我觉得TX就是一个8位的寄存器。发送数据的话,总是一个字节发完,再发一个字节的,我不清楚为什么他说的那个方法能够提高效率。rnrn上述3个问题,还请各位大侠指点一二,小弟不胜感激!rnrn 论坛

请问提高向数据库写数据速度方法

03-20

我是用Ado的方式访问Oracle数据库的,同时向两个表写数据,速度很慢,请问有没有提高效率的方法,具体代码如下:rnSet cnn = New ADODB.Connectionrn cnn.Open "DSN=" & str1, str2, str3rn Set rs_section = New ADODB.Recordsetrn Set rs_link = New ADODB.Recordsetrn rn sqlstr1 = "select * from " & str4rn rs_section.CursorLocation = adUseClientrn rs_section.Open sqlstr1, cnn, adOpenDynamic, adLockOptimisticrn rn sqlstr2 = "select * from " & str5rn rs_link.CursorLocation = adUseClientrn rs_link.Open sqlstr2, cnn, adOpenDynamic, adLockOptimisticrn rn rs_section.AddNewrn rs_link.AddNewrn For i = 1 To jnrn rn rn For j = 1 To jsl(i).nrn rs_section.Fields(0) = rs_section.AbsolutePosition '//路段路况信息rn rs_section.Fields(1) = jsl(i).gridn & jsl(i).linkNrn '--------------------------------------------------------------改变时间格式rn rs_section.Fields(3) = jsl(i).levelrn rs_section.Fields(3) = jsl(i).jsects(j).timern rn rs_section.Fields(4) = jsl(i).nrn rs_section.Fields(5) = jsl(i).jsects(j).levrn rs_section.Fields(6) = jsl(i).jsects(j).srn rs_section.Fields(7) = jsl(i).jsects(j).lrn rs_section.Updatern rs_section.AddNewrn Next jrn rs_link.Fields(0) = rs_link.AbsolutePosition '//路链路况信息rn rs_link.Fields(1) = jsl(i).gridn & jsl(i).linkNrn rs_link.Fields(2) = jsl(i).levelrn rs_link.Fields(3) = jsl(i).timern rs_link.Fields(4) = jsl(i).traveltimern rs_link.Fields(5) = jsl(i).nrn rs_link.Fields(6) = jsl(i).levrn rs_link.AddNewrn rn Next i 论坛

没有更多推荐了,返回首页