If you allow uploads (images etc) then by default they are stored in the database (qa_blobs table). You can store them as files on the server instead if desired. Set the "QA_CACHE_DIRECTORY" constant in your qa-config.php to a writable directory, then in Admin > Stats click the button "move blobs to disk".
Other tables such as qa_words and qa_contentwords are usually the largest in the database. Technically you can empty these but that will break searching and the related questions widget, and they will also fill back up as new posts are added.
You can check your qa_options table in case a plugin added anything too big. There was a problem with a third-party plugin a while back, where it was adding thousands of options to the db (typically the qa_options table has a few hundred rows, not thousands).
If your qa_posts table is large try deleting hidden posts in Admin > Stats. Note that if a question has answers/comments and you hide it, the answers are not technically hidden so the admin button won't delete that question. You'd need to manually hide all the answers/comments before you can delete the question.
That's all I can think of. Most everything else is required to make Q2A work. If you have a lot of content on your site, your database is going to be large. There isn't a way around that.