你的位置:首页 > 数据库

[数据库]DBA临走时给我上的课


这篇本来是在11月写的,可惜,今晚写了就马上发布,内容不算太多,都是DBA妹子临走时在工作交接过程中教我的

1.如果建立的表是没有主键的,则这种表是页表。

2.如果建立的表示有主键的,这种表示堆表,堆表是含有索引的。

3.如果想提高SELECT的速度,尤其是带WHERE条件的,给常出现在WHERE条件中的列建立索引。

4.如果带索引的表经常插入、删除、更新,则需要定时重建索引,减少索引的碎片,方能维持索引查询是的速度。

5.SELECT时加的是共享锁,UPDATE、INSERT、DELETE加的是排他锁;对页表加的是页锁,对堆表加的是key锁,加页锁会影响一整页,包含了多行数据,加key锁只会影响一行。

6.在SSMS中每开一个查询窗口或者在.NET程序中一个ADO.NET链接,则会建立一个会话。排它锁会用于会话与会话间。

7.即时开始了事务,SELECT执行完毕后仍然会自动提交

8.在查询过程中发生死锁,系统会自动kill掉其中一个会话,但这个过程中损失性能和资源,消耗时间

9.SQL Analyzer中的adhoc是动态执行的SQL,通常指来源于外部应用程序的SQL。

10.建表时尽量不要让列可为NULL,宁可用默认值代替,因为查询时如果有WHERE子句,系统会先把表中的数据分为NULL和NOT NULL再进行查找或扫描操作

11.数据库备份有完整备份,差异备份和事务日志备份,其中事务日志备份需要给数据库的恢复模式选择是完整才能使用,通过数据库的"属性"——"选项"——"恢复模式"里面选择。进行事务日志备份和差异备份前需要进行过一次完整备份,事务日志备份和差异备份会对数据库的日志截断。三种备份中完整备份体积最大,差异备份次之,事务日志最小。差异备份是对比上一次完整备份之后的这段间期里做的备份,而事务日志备份则是针对上次(不限于完整、差异或者是事务日志,总之是最近的一次)的这个间期里做的备份。

12.在还原时,还原差异备份的需要拿差异备份前最近的一次完整备份先还原,在数据库状态是正在还原时进行差异备份的还原,事务日志也需要数据库在还原的状态下进行还原,不同的是需要在还原事物日志前把最近的完整备份和差异备份(如果进行过差异备份)。还原时差异备份不可叠加,而事务日志备份是可以多个叠加的,这个是由差异备份和事务日志备份的性质确定的。

13.若想还原速度快,可以用完整+差异 进行还原;若想还原效果好,可以用完整+0~1个差异+n个事务日志备份。

14.在进行数据库镜像同步前需要把对数据库进行"差异备份"和"事务日志备份"还原,使得主体库和镜像库的日志保持一致,在取消镜像同步时则需要把镜像同步停止,对镜像库进行一次"事务日志备份"还原则可。

以上各点不知鄙人有否总结错,如有错误,欢迎指出,谢谢!