Can you see what the raw SQL queries are that Tableau is generating? One thought is you could try running them through the JDBC driver with a tool like Squirrel to see if you get the same error. JDBC tends to perform a little better for me on larger queries. With ODBC, I also usually extract one table at a time, dumping them into a local database, and then run queries against the local copies. It helps avoid timeouts and other performance issues with ODBC.