For Dummies SQL All-in-One 978-0-470-92996-4 사용자 설명서

제품 코드
978-0-470-92996-4
다운로드
페이지 12
Book VII
Chapter 1
Tuning the
 
Database
581
through the table until you come upon the record you want. This feature can 
be a tremendous time-saver for a query. On the minus side, every time an 
insertion update or a deletion update is made to a table, the indexes on that 
table must be updated too, costing time.
When chosen properly, indexes can be a great help. When chosen poorly, 
indexes can waste resources and slow processing substantially.
Regarding indexes, you need to answer several questions:
 ✦ 
Which tables should have indexes, and which should not?
 ✦ 
For the tables that should have indexes, which columns should be 
indexed?
 ✦ 
For each index, should it be clustered or unclustered? Recall that a 
table can have only one clustered index, and that it will give the greatest 
performance boost. The column that is used most often as a retrieval 
key should be the one with a clustered index. Other columns used as 
retrieval keys less frequently would get unclustered indexes.
I address all these questions in this chapter.
After you arrive at a conceptual schema and determine that you need to 
make changes to improve performance, what kinds of modifications can 
you make? For one thing, you could change the way you divide up your data 
among the tables in your design. For another, you could alter the level of 
normalization of your tables.
 ✦ 
Often, you have more than one way to normalize a schema, and one 
such way may deliver better performance than others. You may want to 
change the way tables are defined to take advantage of a schema that 
gives you better performance than your current schema does.
 ✦ 
Although this method may sound somewhat heretical, sometimes it pays 
to denormalize your schema and accept a risk of modification anomalies 
in exchange for a significant performance boost.
 ✦ 
Contrary to the preceding point, sometimes it makes sense to take nor-
malization a step further than you otherwise would — in effect, to over-
normalize. This method can improve the performance of queries that 
involve only a few attributes. When you give those attributes a table of 
their own, sometimes you can speed retrievals.
You should carefully examine queries and updates that are run frequently 
to see whether rewriting them would enable them to execute faster. There’s 
probably not much advantage to applying such scrutiny to queries that are 
rarely run, but after you have some history and notice the ones that are 
being run continually, it may pay to give those queries an extra look to see 
whether they can be improved.
Considering the Physical Design
40_9780470929964-bk07ch01.indd   581
40_9780470929964-bk07ch01.indd   581
2/24/11   3:45 PM
2/24/11   3:45 PM