12M rows look not so much for BQ,
so table size is unlikely the problem (imho).
That's why the following questions:
1) How many Marks are rendered on a view / dashboard?
2) Are you using quick filters? How much unique values are? Do any filters have Only relevant values flag set?
3) Is it a chance that you're using data blending? If so, how much unique values are in blended field(s)?
4) Are there any difference in load/render time when in Tableau Desktop as compare to Tableau Server?
5) What steps are the most time-consuming -- based on Performance Recording data?
Other questions may arise regarding to BQ itself,
but those above are common from Tableau side.