日期:2014-05-18  浏览次数:20823 次

数据库用户访问量突然增大导致运行缓慢,该怎么处理。
即时的和长期的处理办法。
请各位大侠畅所欲言。

------解决方案--------------------
用户增加,数据库连接数增加。

个人感觉应该用集群,分担数据库压力。
------解决方案--------------------
数据库的同步复制 分发 订阅等
------解决方案--------------------
短期内对mssql进行性能瓶颈识别和优化
长期对数据库表结构进行重新规划和调整
mssql的高可用性很少可以做到负载均衡
------解决方案--------------------
增大内存,控制最大连接数量。
http://wenku.baidu.com/view/5f4012a1b0717fd5360cdcbb.html
------解决方案--------------------
首先找到 最耗CPU的top50 SQL
SELECT
total_cpu_time,
total_execution_count,
number_of_statements,
s2.text
--(SELECT SUBSTRING(s2.text, statement_start_offset / 2, ((CASE WHEN statement_end_offset = -1 THEN (LEN(CONVERT(NVARCHAR(MAX), s2.text)) * 2) ELSE statement_end_offset END) - statement_start_offset) / 2) ) AS query_text
FROM
(SELECT TOP 50
SUM(qs.total_worker_time) AS total_cpu_time,
SUM(qs.execution_count) AS total_execution_count,
COUNT(*) AS number_of_statements,
qs.sql_handle --,
--MIN(statement_start_offset) AS statement_start_offset,
--MAX(statement_end_offset) AS statement_end_offset
FROM
sys.dm_exec_query_stats AS qs
GROUP BY qs.sql_handle
ORDER BY SUM(qs.total_worker_time) DESC) AS stats
CROSS APPLY sys.dm_exec_sql_text(stats.sql_handle) AS s2

分别查找执行次数、编译最多、最耗CPU、最耗IO的top 10的SQL
然后分析这些sql和相关表设计进行调整
------解决方案--------------------
探讨
即时的和长期的处理办法。
请各位大侠畅所欲言。

------解决方案--------------------
增加硬件配置,优化业务流程 基本是最好的办法了

------解决方案--------------------
探讨
假如平常你的数据库系统运行正常
但是从某天开始,你的网站突然出名了,然后用户激增,
导致数据库出现很大的压力。
这时候该怎么办,
有没有一个办法,既可以保持网站在线,又可以对数据库能力、服务器能力进行扩展的方法?
具体一点最好了,因为我觉得很多人都会碰到这种问题。