数据库两个实例问题解析 |
本文标签:实例 SQL Server 2005 SQL Server 微软 DBA 【51CTO.com独家特稿】】6月14日,微软顶级数据库专家与51CTO网友就“怎样成为一名高效的DBA?”这一主题进行了面对面的热烈讨论,这是访谈系列文章中的一篇节选 。 欲看专题请进入:http://www.51cto.com/exp/dba_sqlserver/ 【51CTO用户】数据库可用性问题 。数据库单项事务,如何高效进行对大量数据的管理?经常会遇到在单个事务中更新或删除大量的数据行,比如做过期数据清理,即使在服务器闲的时候做这种操作,也会锁定整个表,影响正常数据的使用 。
【微软专家】这是在大量数据操作过程中经常碰到的一个问题,所以最简单的方法是我们尽量避免大数量操作在单个事务中,我们尽可能做到在操作一些数据后,尽快的结束任务 。 大数据量的删除是我们经常遇到的,尤其是在处理一些历史数据时,最有效的应对方式就是可以采用数据表分区方式,我们可以用时间分区方式来最大可能提高删除数据的效率 。 在Lubor Kollar的博客(http://blog.msdn.com/sqlcat )中有一篇文章专门介绍了如何在一个小时内,插入一个TB的数据 。 【51CTO用户】如何提高小表的运行效率?常规做法是增设一块区域,由DBA指定缓存某些常用表和数据,但是效率如何提高呢? 【微软专家】我们需要知道更多的关于这个问题的背景才能精确的回答这个问题 。如果我们看到有些用户使用比较小的表时,他们用了表的参数,特别是在比较复杂的查询中,如果用表的参数,这是代价很高的一种做法,所以应该尽量避免使用这种做法 。另外一些情形,看到有些用户,他们特意把小的表扎到内存里面,但是这种做法实际上并不需要,因为你这个小表一直在用时,SQL Server会自动的把它放在内存中,所以你应该避免明确的把它放到内存中的这种做法 。 |