As I said in the first post, the scenarios are not the same. In your first example you fill the dataset. So it seems that you don't have a datatable in the dataset, but it's created during fill. In the second example, you already have a datatable and you're filling it. So it makes me wonder if you have existing event handlers, binding etc. attached to the datatable. If so, they can be the cause to the slow fill. Especially if binding is involved since existing binded objects must be refreshed when binding is done. This wouldn't be the case in example 1. Without seeing the actual situation, it's merely guessing. However, the filling speed should be equal in both cases if the query is the same and the 'surroundings' are the same (eventhandlers etc)
The need to optimize rises from a bad design. My articles[^]