|
1. 索引个数对于SQL解析性能的影响
由于经验少,所以在我工作中还没发现这个对sql解析性能影响非常大的案例。但是经常在oracle中做10053trace的时候就知道他会计算多个可能路径的cost值。所以觉得索引个数应该会对sql解析性能有一定影响。
2. 如何有效使用索引和表结构来处理SQL语句
前者如何有效的使用索引,我想是应该注意sql书写方式,分清楚函数索引,普通索引。以oracle数据库为例,如果是普通索引的列在where子句中使用了函数那么就会导致该索引不被使用。后者表结构对sql的处理上,我想的是非空约束,主键,外键等对sql的影响,比如非空约束,在not in中要使用hash join anti那么要求比较的列值不为空;主键的效果就不用说;外键上的索引对delete,update父表时的影响也很大。
3. 前瞻性索引设计的核心思想是什么
我觉得应该是建立在对业务的深入理解,了解所有的对表中数据的所有应用场景,最终了解列值统计信息,并统计出有哪些应用sql语句,不管是dml还是select类型的,然后根据表数据量,列的柱状图信息,语句的谓词,和排序字段等设计索引。尽可能做到我需要什么数据,语句就是访问那些些数据的,不需要做其他额外的操作(比如access与filter,我们通常喜欢直接access的内容就是我们所需的内容,而不需要access后还来一次filter)。
4. 说说您读完试读样章后的启发
样章中的内容在实际工作中也经常遇到,所以暂时没有惊艳的感受。不过读后启发还有一句话就是,I want you!!!嘿嘿 |
|