We're currently storing answers for 52 predefined questions for our clients in our matchmaking site.
we have over 30million unique users summing up for worst case of a 52x30million rows. Of these 52 questions, 11 are required and always answered.
Our previous solution was to open an answer table for each question. This solution distributed our answer rows for faster insert/delete/update. But it also caused us an unconventional programming such as dynamically opening a table each time a question is added/updated, or removing an answer table if it was to be destroyed permanently.
We want to come up with a better solution for our third version but could't get very far yet.
Any ideas to accomplish this in any other, perhaps a more conventional, way?
Why do you have bad performance now? Do you know if you are IO bound or suffer short page life? Prior to changing the design your company needs to determine why you have bad perfornace.
I will guess your hardware is
I will guess your SQL tables have
The best db design is one which will satisify your business rules. Do your business rules define a reporting system or an OLAP? Do you business rules define a SLA for the application?
My advice is to hire a firm which has a proven track record of identifing poor SQL performance. Implement their recomendations first then redesign to meet your SLA. 1.5 billion rows for SQL Server is not that many in one table if one know how it will be used, OLAP or Reporting.
I really do not want this to sound harsh but without an investigation of all performance aspects of the application any suggestions would be a waste of your time.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With