sql server 基本问题解决思路

 

1.数据库故障排查步骤,如何处理紧急数据库问题;
首先根据报错信息找到故障原因.然后实施对应的解决方案.
2.SQL调优步骤,如何来判断SQL语句存在问题,怎么定位问题,如何解决这些问题;
可以建立一个Performance监控的列表,包含Memory,Buffer,Disk and CPU部分.参照参考值,发现监控数据处于异常范围.之后根据Profiler抓取到对应的sql,进行优化.
3.跟踪数据库数据的变更有哪些方法,它们(CDC(Change Data Capture)、CT(Change Tracking)、Trigger等)使用上的优缺点;
CDC虽然功能很强大,但是有几个缺点:1:只能在企业版中使用;2:一直开着对数据库的压力较大. 优点:可以抓取到变化之前和变化之后的数据
CT:只能抓取到DML语句的类型和主键,但是不能看到变更之前的数据
Trigger:可以创建DML Trigger来监控数据的变化,但是Trigger相当消耗系统资源
4.SSB(Service Broker)使用场景,如何创建,都会创建些什么对象,有啥优缺点,主要通过什么方式实现不同服务器之间的消息传递;可以通过哪些方式排错;
SSB主要是用来进行异步消息通讯的,一般应用在电商系统上,比如下一个单,然后传送一个Message到target Server上的DB
当然是通过T-SQL语句来创建了.
具体要创建的对象包含:Message Type. Queue. Contract.Service.Endpoint.Route.Remote Service Binding.
如果Message过多的话,处理会有一定的延迟.
实现方法:首先,From service上的transmission queue 会向target Service 发送一个test的Message,确定网络状况良好,之后target Server上的DB也会有一个Feedback给From Service.再之后,当有消息要经过From Service到Target Service的时候,先将Message保存到本机的transmission queue,然后发送消息到target Server上的Queue,并且触发Target Server上绑定的SP.当处理完结束之后,就会发送一个消息给From Service.如果包含End Conversation,那么就结束当前对话.否则如果满足From Service上的Message Type,则会触发From Service上绑定的SP.
一般的异常情况:
1:消息堵在Transmission Queue,需要检查目的端的数据库是否在运行一些大的操作,比如backup或者检查两边数据库的时间是否一致等等.
2:消息堵在Queue中.这种就是指处理缓慢.临时解决办法:加大Queue中的Max_Queue_readers增大并发数.当然还是要找到为什么处理缓慢,比如:发送消息的确过多,需要跟业务部门协作;要么SP执行缓慢等等
3:有些时候会遇到死锁,那么需要重新执行那个SP,当然参数需要与出错时一致
posted @ 2018-03-21 14:57  郭大侠1  阅读(254)  评论(0编辑  收藏  举报