The focus of your design should not be the
achievement of theoretical design perfection; it should always be on the end user??™s ability to do
his or her job. Therefore, you should simplify the processes involved at every step in the application.
This can be a difficult point to negotiate with application development teams. If application
development teams or enterprise architects insist on perfectly normalized data models, DBAs
should point out the number of database steps involved in even the simplest transaction. For
example, inserts for a complex transaction (such as a line item for an invoice) may involve many
code table lookups as well as multiple inserts. For a single user this may not present a problem,
but with many concurrent users this design may lead to performance issues or locking issues.
From a performance-planning perspective, inserts should involve as few tables as possible, and
queries should retrieve data that is already stored in a format that is as close as possible to the
final format requested by the users. Fully normalized databases and object-oriented designs tend
to require a high number of joins during complex queries. Although you should strive to maintain
a manageable data model, the first emphasis should be on the functionality of the application and
its ability to meet the business??™s performance needs.
In Your Application Design, Strive to Eliminate Logical Reads
In the past, there was a heavy focus on eliminating physical reads??”and although this is still a
good idea, no physical reads occur unless logical reads require them.
Pages:
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227