2010-10-05 46 views

回答

1

一个好的DBA可以检测到使用无非是茶叶和鸡内脏的问题。

虽然严重,一个好的DBA的特点是没有这么多的能够检测的问题,而是要能够检测到可能出现的问题的基础上,这种静态分析。

举例来说,一个好的DBA可以看看:

select * from tbl where col1 = 7 order by col2; 

,并立即弄清楚的是:

  • 该查询要么使用他们所要求的每列的用户,或他们应该要求更少。
  • 表可能需要在col1col2列的索引。

现在,这两个潜在问题领域是不足以决定是否有问题。为了确定这一点,DBA需要检查数据库模式和统计信息。但静态分析应该是一个好的开始。

所以,在回答您的实际问题,没有,他们一般不会找到只有在阅读TSQL(或任何SQL)的问题,但他们应该能够使用这些信息来定位自己的努力。

+0

他可能也想看到一个绑定变量而不是文字'7'。 – Thilo 2010-10-05 07:16:06

+0

一个好的DBA可能会推荐一个单独的复合索引(col1,col2),而不是两个单独的索引:) – BradC 2010-10-14 13:23:10

1

号她就至少需要拥有表模式和索引定义,以便能够开始猜测,而对于一个受过教育的意见,她希望看到来自现场的数据库性能分析信息。

可能有一些一般性的“你不能这样做”的错误,她可以通过看查询追赶,但对于大多数性能问题,这一切都取决于配置和环境。

2

DBA应该理解TSQL,并能够识别问题。

说了这么多,查询的执行只是部分由TSQL本身引起的。
它也非常依赖托管SQL Server的机器的索引,触发器,表结构和体系结构。

所以TSQL只是DBA必须考虑的一个因素。