64位sql2008,服务器是64位系统,最近感觉sql非常卡 64位服务器数据库sql 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建议设置内存,即使不设置最小,也要设置最大,一般没有标准,你可以留4G给操作系统,其他的分配给SQL Server。另外你的“卡”,需要先告知整体环境,数据库文件的存放位置等等 执行一下这个语句,然后上图。SELECT TOP 10 * FROM sys.dm_os_wait_stats ORDER BY wait_time_ms DESC --执行计划中使用了并行操作的语句:SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;WITH XMLNAMESPACES (DEFAULT 'http://schemas.microsoft.com/sqlserver/2004/07/showplan')SELECT COALESCE(DB_NAME(p.dbid) , p.query_plan.value('(//RelOp/OutputList/ColumnReference/@Database)[1]','nvarchar(128)')) AS database_name ,DB_NAME(p.dbid) + '.' + OBJECT_SCHEMA_NAME(p.objectid, p.dbid) + '.' + OBJECT_NAME(p.objectid, p.dbid) AS object_name ,cp.objtype ,p.query_plan ,cp.UseCounts AS use_counts ,cp.plan_handle ,CAST('<?query --' + CHAR(13) + q.text + CHAR(13) + '--?>' AS XML) AS sql_textFROM sys.dm_exec_cached_plans cpCROSS APPLY sys.dm_exec_query_plan(cp.plan_handle) pCROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) AS qWHERE cp.cacheobjtype = 'Compiled Plan'AND p.query_plan.exist('//RelOp[@Parallel = "1"]') = 1ORDER BY COALESCE(DB_NAME(p.dbid), p.query_plan.value('(//RelOp/OutputList/ColumnReference/@Database)[1]','nvarchar(128)')), UseCounts DESC上图 那是因为你的结果集多,你就top 10看看吧 快捷方式:右键绿色那行字,然后选择【缺少索引xxx】那个,就会在新界面产生一个脚本,你把索引名改改就执行一下。把8楼中,排名前10~20的都这样做,然后再看看效果 也不算,主要是先使用优化器给出的建议,你看你截图那个执行计划,理论上可以提高91%的性能。而且可能主要由于缺失索引,到时并行操作很多,CXPACT这个等待状态居首位(也就是4楼的图) 不是实时的,读的是缓存的数据。你直接执行那个查询,对比一下效果步骤1:先保存缺少索引的定义,然后删除那个新加的索引,执行你的查询步骤2:加上缺少索引,然后再执行语句。如果不明显,ctrl+m,然后执行查询,单独贴图上来看看。另外引用一下回复 查看下服务器性能分析器吧,看看是CPU、内存还是硬盘读写的问题,再对症下药 sql 2000 groupby的问题 一个函数问题,在线等,工作的似乎不太正常 问条sql语句的问题.越简单越好. 为什么总提示列名无效? 每次更新一条记录到基础表,视图就会有两条记录 请指点一下向表中添加记录的问题,数据库的数据非常大,有好几年的数据,在添加记录时,程序像死了一样。 一个再筛选最小住的问题 成批修改某一字段值 100分急求答案?一个java 方法翻译成sql server 中的存储过程 数据库字段设置问题? SQL 随机抽取不重复数据 关于一个查询统计的SQL语句
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
WITH XMLNAMESPACES (DEFAULT 'http://schemas.microsoft.com/sqlserver/2004/07/showplan')
SELECT COALESCE(DB_NAME(p.dbid)
, p.query_plan.value('(//RelOp/OutputList/ColumnReference/@Database)[1]','nvarchar(128)'))
AS database_name
,DB_NAME(p.dbid) + '.' + OBJECT_SCHEMA_NAME(p.objectid, p.dbid)
+ '.' + OBJECT_NAME(p.objectid, p.dbid) AS object_name
,cp.objtype
,p.query_plan
,cp.UseCounts AS use_counts
,cp.plan_handle
,CAST('<?query --' + CHAR(13) + q.text + CHAR(13) + '--?>' AS XML) AS sql_text
FROM sys.dm_exec_cached_plans cp
CROSS APPLY sys.dm_exec_query_plan(cp.plan_handle) p
CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) AS q
WHERE cp.cacheobjtype = 'Compiled Plan'
AND p.query_plan.exist('//RelOp[@Parallel = "1"]') = 1
ORDER BY COALESCE(DB_NAME(p.dbid), p.query_plan.value('(//RelOp/OutputList/ColumnReference/@
Database)[1]','nvarchar(128)')), UseCounts DESC上图
右键绿色那行字,然后选择【缺少索引xxx】那个,就会在新界面产生一个脚本,你把索引名改改就执行一下。把8楼中,排名前10~20的都这样做,然后再看看效果
步骤1:先保存缺少索引的定义,然后删除那个新加的索引,执行你的查询
步骤2:加上缺少索引,然后再执行语句。如果不明显,ctrl+m,然后执行查询,单独贴图上来看看。另外引用一下回复