Just did a quick test on my machine: ~20 seconds to export 1M records.

It is probably something with the view, have seen that before. You could maybe use a sql query to get the data and export from there. I have also used SQL jobs for that.

FWIW, this is the code I quickly put together
Code:
Use DFAllEnt.pkg


Object oApplication is a cApplication


End_Object






Open ShopLog


Procedure ExportCSV
    Integer iCounter    
    
    Direct_Output channel 6 'c:\temp\shoplog.csv'
    Clear ShopLog
    Find GT ShopLog by Index.1
    While (Found and iCounter < 1000000) 
        Increment iCounter
        
        Writeln channel 6 (String(ShopLog.ID) + ';' + Trim(ShopLog.Function) + ';' + Trim(ShopLog.Param1))
        Find GT ShopLog by Index.1
    Loop 
    
    Close_Output channel 6
End_Procedure  




Showln (CurrentDateTime())
Send ExportCSV            
Showln (CurrentDateTime())


Global_Variable Integer giInkey
inkey giInkey