笔试的三道题目,有兴趣的进来看看
1.如果单从字面上去抠字眼,当然是不一定,但建立合适的索引,一般情况是会提高查询效率的,当然T-sql用不用索引,还要看SQL Server计算出来的成本,而且SQL Server有时候还会生成不好的执行计划,就算有索引也不会使用它。
2.这个可能有很多,最容易出现的是由于数据的增多,缺失索引造成的性能下降会显同出来,还有就是对于线性增长的数据量,统计信息也会更新的越来越慢,导致执行计划变得很差。当然具体问题具体分析,需要排查,不仅是db方面,web应用程序池也可能会出故障,变慢首先要确定是app还是db,如果是db,需要看程序执行的这些sql语句实际效率如何,这个就是所谓的调优,调优最小的成本是加索引或修改sql或数据归档,这个过程需要判断瓶颈,如果是硬件原因)CPU/Memory/IO),需要升级硬件解决。
3.很大的表建索引,一般需要考虑建索引的时间、建索引花费的时间、锁表的时间、加索引对写造成的影响、对查询语句有多大的性能提升等等。在什么字段合理,我估计考者的意思应该是较窄的字段类型,不过具体问题还要具体分析,原则上虽然是这样,但实际中却往往需要找一个平衡点。
如果是面DBA,这三个大概是:
1.请解释一下表的存储以及聚集和非聚集索引结构。
2.如果系统变慢,你如何针对DB做一个论断检查?如何确定是CPU、内存、IO有瓶颈?请举例你之前优化过的成功案例及解决方法。
3.你以前接触的业务的核心表有多大?有多少索引?建一个索引大概有多久?
------解决方案--------------------帮顶,慢慢看
------解决方案--------------------大叔XLV587
------解决方案--------------------案例了
------解决方案--------------------
------解决方案--------------------顶!慢慢研究
------解决方案--------------------
------解决方案--------------------