Considerations for a Database System Design
A simple answer to considerations for a high Performance database is "It Depends"
Yes, Indeed it depends. let me elaborate some of the points.
What do you mean by High Performance Database System?
The data retrival time to be very less?
Processing of data at a faster pace?
Minimal usage of system resources and provide more performance
and the list goes on.
There isnt any fixed consideration for a Database System, however, there can be some general considerations which can be taken, even though these might not be applicable for all the Database Systems. Here are some of the considerations
1. What are the Minimal and Maximum Hardware consideration to be taken such as No of CPU's, Amount of RAM, Size of Disk Space, Kind of Disk Space which needs to be evaluated from requirements and the adequate amount to be allocated.
2. Design the Database in a Normalised way/De-normalised way depending on the considerations and follow standard guideliness for a database Design keeping the amount of hardware availability in Mind.
3. Availability considerations for database so as to define what is the minimum and maximum uptime expected from the database system.
4. Design a proper Disaster Recovery and Backup statergy to accomodate you data and depending on the data loss to be incurred and agreed.
5. A thorough and regression test of the database system before they go live with all the possible scenarios to be carried out and as and when needed and necessary make the changes and considerations.
6. Collabaration between the Design, Development, Implementation and Support Team to address all needs, issues, suggestions.
7. Define A standard for all database objects to be used such as naming conventions, database standard, standard policies, disk allocation, drive allocation, file allocation, keywords, search methodology etc.
8. Define Proper Indexes, usage of procedures, views wherever necessary.
9. Design a Daily, Weekly, Monthly and all necessary periodic Maintenance Tasks which will keep track of what is happening with the database system and make corrections periodically.
10.Post implementation always check on the performance and keep an eye on the changes happening and the changes needs to be done.
11.Have a better Network Connectivity to the Servers and database.
12.Check on the applications accessing the database and proper design of applications which access the data from database.
13.Periodic check of Index fragmentation, Defragmentation, Unused Index, Used Index, Missing Index, statistics etc and apply the same wherever necessary.
14.Keeping the servers upto date with the fixes, updates etc
15.Backing up of the data to tape and backing up the system images.
16.In many situations, new CPUs, memory, or more disk drives can indeed provide an immediate performance improvement. However, any performance increases achieved by adding hardware should be considered a short-term relief to an immediate problem. If the demand and load rates on the application continue to grow, then the chance that you will face the same problem in the near future is very likely.
In other situations, additional hardware does not improve the system's performance at all.
17.Configuring Failover, Secondary Availability, Standlone Reporting etc.
18.Defining a standard set of security and periodic visiting, auditing of the security.
The list goes on. Every Database System to be Designed has its own considerations, Pros and Cons. Its together as a Orgaisation and all the teams involved to have a consolidated design, approach, agreement, development, Implementation and Support will provide a better Database System.