How to increase performance?

How to increase performance?

Performance loading from source db to target db is very slow. Our source db is on premise and target db on Azure. Loading three tables and all of them total around 25,000 records and it takes 5 minutes to load. No transformation is done, only straight load. My job uses tMSSqlConnection to connect and auto commit option is selected. Is there any options to set to increase the speed?

Re: How to increase performance?

@abhishek mentions some good things to check/change, but there is also a known issue with the MSSqlServer components (depending on the version you are using). There is an easy workaround though. All you need to do is to add....

"sendStringParametersAsUnicode=false"

....to the "Additional JDBC Parameters" in the "Advanced" tab of your Insert or Update component. You should see an improvement from that.

You should also keep in mind that your performance will suffer a bit by the fact that you data is moving from on-premise to the cloud.....although nowhere near to the point where you are getting only 250 rows a second, unless you have a VERY slow internet connection.

Re: How to increase performance?

You are showing two screenshots. The first is showing over 10000 rows a second. The second is much slower. Are you saying that 10000 rows/second is not fast enough? Also what is the difference between the two?

Re: How to increase performance?

First screen shot value in blue shows the speed it is reading from the source. 2nd screen with green value shows the speed it takes to load data to the database. It is taking too long to upload the data to the destination. Anything I can do to improve this?

Re: How to increase performance?

Hi,

I have a similar problem. I am trying to move data from one server to another server and i am using Talend Open Studio. there are 82M records in source(data is in views) and everything should be moved to destination(should be moved to Tables with no primary keys and indexes). I have the set the 'batch size' and 'commit every' to 20000. There are close to 80 columns in source and same goes with Destination. The rate of Transfer is just 1000 rows/s. is there any way that i can improve the transfer rate in the job. could someone please help me with this. i have set the JVM's for 4096M.

I have tried to use bulk components, but since the SQL server and studio both are in different machine, it is not very helpful for me.

Please find the attached screenshots. Any help to move the data faster would be helpful.

Re: How to increase performance?

Did you calculate the block size you are trying to upload:1000r/s * ( 80cols : totalSum(bytesize per colum)) = x MBMaybe your upload speed is the performance killer in this one, wifi (20Mbit) or utp cable Gbit?

My experience:Create a backup of the source table (it will create an insert into record) and next upload this file first to your new server, and then process this file. You will get the maximum performance.

How busy is your target DB? if there're many read/writes by other processes and maybe a transaction replication configured, suggest search for a time/window where the amount of concurrent processes are minimum.

Other wise sit back and relax, its just a backup, doing it once you will never do it again.

Re: How to increase performance?

As an experiment can you remove your target connection component, configure the connection details in your output component, play around with the "Commit every" settings, set "Use Batch Size" and play around with that number. Add the String I told you about before in the Advanced settings of this component. Also, post your config if you cannot see an improvement.

@Dijke also makes a good point, are you sure that this limitation is not being caused by the server you are writing to OR the bandwidth between Talend and your target server?

Re: How to increase performance?

You need to remove the connection component and untick "Use an existing connection" in your output component. The connection options change after that. Look in both the Basic settings and the Advanced settings

Re: How to increase performance?

I did Add the String you told about before in the Advanced settings of this component and it didnt quite improve the performance. just to add, i am using talend on machine which is only 7GB ram and when i checked the CPU utilization, it is almost full. just speculating if that is the issue.

Re: How to increase performance?

I dont know your wifi speed, but lets say 80Mbit/s = 9 MegaBytes = 9 000 000 BytesHow many columns? summarize the size... say between 100 - 300 Bytes per record (avg record) = MAX 100.000 Record /s when it are only inserts and without calculating overhead and other stuff.But if you want to insert/update... it will do a lookup ... and that's the performance serial killer.

Search for your (input) database how to backup tables, or how to migrate. High chance it will generate insert into statements. Upload this file first to your target database if possible using a migration tool... search for it on google and you will find better instructions.