DBA可以通过读取TSQL代码来发现性能问题吗?

时间:2010-10-05 07:07:06

标签: sql sql-server

DBA可以通过读取TSQL代码来发现性能问题吗? DBA是否应该具备这种能力?

3 个答案:

答案 0 :(得分:2)

DBA应该了解TSQL,并能够识别它的问题。

话虽如此,查询的执行仅部分是由TSQL本身引起的 它还在很大程度上取决于托管SQL Server的机器的索引,触发器,表结构和体系结构。

因此,TSQL只是DBA必须考虑的一个因素。

答案 1 :(得分:1)

没有。她至少需要让表模式和索引定义能够开始猜测,并且对于受过教育的观点,她希望从实时数据库中看到性能分析信息。

通过查看查询,可能会有一些“你就是不能这样做”的错误,但对于大多数性能问题,这一切都取决于配置和上下文。

答案 2 :(得分:1)

一个优秀的DBA可以使用茶叶和鸡内脏来检测问题。

说真的,一个好的DBA的标志并不是能够检测到问题,而是能够根据这种静态分析来检测可能出现的问题。

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

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

并立即弄明白:

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

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

因此,在回答您的实际问题时,不,他们通常不会仅通过阅读TSQL(或任何SQL)发现问题,但他们应该能够使用该信息来定位他们的工作。