Is there a way to estimate the write bandwidth from java to an Oracle
We have a large volume of data and want to know how fast开发者_运维问答 it can be written to Oracle. Is there a way to estimate the write bandwidth from java to an Oracle DB? We can use any approach (not necessarily JDBC) if it is faster. For example it would be useful to know for X disk speed, Y processor, then you can write Z bytes/second. Is there a way to estimate such a data rate?
Thanks!
I don't think there's any standard formula. Among other things it also depends on your schema (e.g whether you have indexes on the tables), the file system, how many disks you have, the RAID level you are using, how the tables, indexes, logs etc are spread out across those disks...
Try it and see is probably the only way.
If there is a way of estimating it given all that, I'd like to know about it too!
If you have the network bandwidth, processor speed and disk write bandwidth, you need to know how much Oracle will inflate the size of the packets and how much it will inflate the data when it write them to disk. (i.e. what is the overhead) This depends entirely on your data structure, but for a given dtata structure it will be the same. Without more information I would guess its is a factor of 2-3.
I would suggest the total time is the sum of the combined delays. (Unless you know differently, concurrency is possible but unlikely ;) You can guestimate how long each part of the process takes and it could be accurate to within a factor of three. This doesn't replace testing in any way but if your test time is significantly different it is worth checking why.
A formula might look like the following assuming you have large transactions (not trying to commit each record individually)
Network delay - 100 MB over 1 Gb link with 100% overhead takes 2 seconds.
Processor delay - 100 MB with 200% overhead on a processor which can move 300 MB/s takes 1 second
Disk delay - 100 MB with 200% overhead to disks which can sustain 60 MB/s takes 5 seconds.
Note: depending on how you cache you data write through/write back the data to disk could be almost entirely cached and written out later.
This results in a guess of 3 - 8 seconds.
However, you would still need to test your specific system to find out how long this takes.
精彩评论