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

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

performance problem about inserting qv selections to database via macro

hi all,

i wrote a macro for creating table and inserting selections in qv to a database.that s all right.it works without any problem.BUT there is a problem about its performance.if you write only 100 rows, it works well.it does this job in a few seconds.but if you want to write data like 100.000 rows it works too slowly.i didnt wait but i can say that it may last aprx 60-70 mins.

does anybody know how to increase writng speed? or can i do the same job with another application?

you can find the code works here:

sub dbCreateInsert

dim sConn, oRS, sSQL1,sSQL2,var1
set var1= ActiveDocument.Variables("VARIABLE")
var1 = ActiveDocument.Variables("VARIABLE").GetContent().string
set doc = ActiveDocument
Set sConn = CreateObject("ADODB.Connection")
sConn.Open "Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=USERNAME;Password=PASSWORD;Data Source=DBNAME;"
set oRS =CreateObject("ADODB.Recordset")

'creating table with name gettiing from variable
sSQL1="CREATE TABLE " & var1 & " (CUSTOMERID varchar(20))"
set oRS = sConn.execute(sSQL1)

'selecting all different rows
set cLoRecord=doc.Fields("CUSTOMERID _NO").GetPossibleValues()
for i=0 to cLoRecord.Count-1
vRecord = cLoRecord.Item(i).Text
doc.Fields("CUSTOMERID _NO").Select vRecord

set CM1 = doc.Fields("CUSTOMERID").GetPossibleValues()
vm1 = cM1.item(0).Text

' writing to db
sSQL2="INSERT INTO " & var1 & " (CUSTOMERID ) VALUES (" & "'" & vm1 & "')"
set oRS = sConn.execute(sSQL2)
next

'warning after writing
doc.ClearAll
msgbox("all your selectins has been written")
set oRS = Nothing
set sConn = Nothing

end sub

1 Reply
Not applicable
Author

Write to Oracle only if cLoRecord.Count < 100 . Otherwise skip writing; reading will be equally slow

-Alex