Hi Ananda. Typically it's best practice to only pull in the columns from your db that are required to create the viz. With this best practice in hand, if you have a viz with a lot of columns (i.e. 800), then yes, I believe it's possible to create an extract with this. It's likely that the extract will take a while to create, but once it's created, then I'm theorizing that the actual rendering of the viz will be unaffected by the # of columns, let me know if this is otherwise.
One suggestion is that when you create an extract, do "hide unused fields" after creating the viz and then run an optimize. This will allow the extract to be optimized. See here for more info: http://kb.tableau.com/articles/knowledgebase/tips-working-with-extracts