You could look in the Tableau log file in your repository to get a bit of a clue about what it's doing (there are timestamps on all rows, so look for the gap in the times).
But if it's taking 20 minutes to return 0 rows from a data extract that definitely sounds like a question that Tableau support would love to help you with.
Thanks for the reply,
Based on the log file entries I believe most of the time is spent on a row like this, there are hundreds of them each time i refresh a view or change something.
2012-02-20 16:48:53.615 (17d8): UpdateProgress: k = 5560464, lb = 10889503, n = 13785771, ub = 19499466
what does this entry actually mean?
EDIT: this may be off-topic but is there a way to limit the number of marks on the screen? As I mentioned, this view has dimensions on the row so each record is shown (text). Can i limit it to x number of rows even if there are more?
I've no idea what that log file entry means - just that the Tableau Data Engine is doing something (which you already knew). The log file is really intended to allow Tableau support to see what is going on - but sometimes you can get a good hint from looking at it.
I suspect the reason for the time taken will be to do with the nature of your data distribution: how many fields you have on the display, how long those fields are, how many distinct values there are, etc. It sounds as if as you have it set up the data isn't well suited to the Data Engine's storage structure for some reason.
If you could put together a small sample workbook (with realistic, even if invented data) along with a description of the data distribution we might be able to suggest something - but I think this is probably one for Tableau support.