Search code examples
tableau-apinormalize

Tableau: Normalize or denormalized tables perform better on read queries?


Would multiple normalized, tall & thin tables that are joined be less performant than 1 denormalized, short & wide table when Tableau is pulling data from it to make visualizations? I'm worried 100% about reads (select statements). I'm not concerned at all with writes (update, inserts, deletes). I'm connecting to a SQL Server database from Tableau. I have several million rows of data.


Solution

  • The solution to this problem will vary a lot depending on how Tableau is reading data from your tables. If all else is equal, denormalized data is going to be faster because of less joins. But you have to make sure you're indexing the right columns and for the right reasons. And don't go overboard with denormalizing. The highest performance will probably lie somehwere between 2NF and 3NF (this may be a biased opinion, based on my experience). You must also realize that denormalization causes maintainence issues. So you have to choose a good balance between performance and maintainability. This might help you: http://sqlblog.com/blogs/paul_nielsen/archive/2008/10/03/denormalize-for-performance.aspx