Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Discover how organizations are unlocking new revenue streams: Watch here
cancel
Showing results for 
Search instead for 
Did you mean: 
rp2018
Creator
Creator

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?

Labels (2)
22 Replies
Anonymous
Not applicable

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?

rp2018
Creator
Creator
Author

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?

Anonymous
Not applicable

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.


runproperties.PNG
Talendprop.PNG
Jesperrekuh
Specialist
Specialist

Did you calculate the block size you are trying to upload:
1000r/s * (  80cols : totalSum(bytesize per colum)) = x MB
Maybe 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.

Anonymous
Not applicable

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?

rp2018
Creator
Creator
Author

I'm using tmssqlconnection and only option it gives me is auto commit.  Even in tmssqloutput, I don't have an option commit every.  How do I set # of rows to commit?  Is auto commit, commits every row?

 

Thanks

Anonymous
Not applicable

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

Anonymous
Not applicable

Di Dijke,

I didnt calculate the block size. I am connected to a wifi at my work and the DB isnt that busy, it is only me who is performing ETL operations to the DB.

 

Also, Can you tell me what do you mean by creating the backup of source table? i mean i am not catching your point.

 

Thanks

Rahul.

Anonymous
Not applicable

@rhall,

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. 

 

Thanks

Rahul.

Jesperrekuh
Specialist
Specialist

I dont know your wifi speed, but lets say 80Mbit/s = 9 MegaBytes = 9 000 000 Bytes
How 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.