首页 > 代码库 > 新到一个公司做DBA遇到的困局

新到一个公司做DBA遇到的困局

今天是我我刚到一个公司上班3个月,2个月的时候我转正了,我在两个月内把公司主要系统的性能压力降低了。

可是我更加困惑了。我发现服务器CPU的压力来源与数据库的拙劣设计,查询的性能低下。由于公司系统是一个历史遗留问题,

这我无能为力,但查询我可以改变吧,公司存储过程和查询语句统一用一种格式,存储过程的参数一般在10个以上,然后还给了默认值,

例如:

create proc test

(

  @a1 int=-1,

  @a2 nvarchar(50)=‘‘,

.......

)

在查询语句中,会发现全部都是:

select col1,col2......,coln from tb1 join tb2 on tb1.id=tb2.id join ......

where (@a1=-1 or tb1.id=@a1)

and (@a2=‘‘ or tb1.name in (select * from function_split(@a2,‘,‘)))

......

这样写的结果就是大多数查询都是使用并行查询,我通过限制并行查询度和阀值调整了,依然不够。

叫相关负责人改,也不理会。

 

当你知道系统问题在哪里,也知道怎么解决,但却无法下手的时候,真的很无奈,困惑。