The speed of the refresh depends a lot on the indexing in the DB. So it is impossible to say which is faster.
Secondly, I am not sure that optimizing the script run is the best thing to do. Often it is better to optimize the QlikView data model so you get good respons times for the user. This is something you can read more about in my blog about joins: http://community.qlik.com/blogs/qlikviewdesignblog/2012/09/12/to-join-or-not-to-join
Totally agree with HIC. It takes lot of effort to optimize the DB. There are loads of external factors because there are other resources which are sharing the DB. And you can't optimize the DB unless you are owner/DBA and again it will have great impact on DB caching & execution plans. So I'd recommend you to play within QlikView. It's easy to test within QlikView. If your ODBC connection is taking long time then you need to lean on looking into the DB statistics.