alter table tblBatches alter column reads bigint
修正后溢出问题就会解决。
蛇足:哪个是HOT 数据库?本文到这里就基本上结束了。你已经知道如何使用Read80Trace和usp_GetAccessPattern得到数据库系统的访问模式,以及如何从全局的高度去分析访问模式报表,从而在优化系统的时候做到提纲挈领,胸有成竹。
除此之外,你还可以应用类似的分析思想得到每个数据库的占用资源比例。这对于SQL Server有多个数据库的情况非常有用。从报表中你可以立即知道哪个数据库是最HOT最消耗系统资源的数据库。语句如下:
print 'group by dbid'
declare @sum_total float,@sum_CPU float,@sum_reads float,@sum_duration float,@sum_writes float
select @sum_total=count(*)*0.01,@sum_cpu=sum(CPU)*0.01,@sum_reads=sum(reads)*0.01,@sum_writes=sum(writes)*0.01,
@sum_duration=sum(duration)*0.01 from tblBatches
select dbid,
ltrim(str(count(*))) exec_stats,''+ str(count(*)/@sum_total,4,1)+'%' ExecRatio,
ltrim(str(sum(cpu)))+' : '++ltrim(str(avg(cpu))) cpu_stats,''+str(sum(cpu)/@sum_cpu,4,1)+'%' CPURatio ,
ltrim(str(sum(reads) ))+' : '+ltrim(str(avg(reads) )) reads_stats,''+str(sum(reads)/@sum_reads,4,1) +'%' ReadsRatio ,
ltrim(str(sum(duration) ))+' : '+ltrim(str(avg(duration))) duration_stats,''+str(sum(duration)/@sum_duration,4,1)+'%' DurRatio ,
count(*)/@sum_total tp,sum(cpu)/@sum_CPU cp,sum(reads)/@sum_reads rp,sum(duration)/@sum_duration dp
into #queries_staticstics_groupbydb from
(select reads,CPU,duration,writes,convert(varchar(2000),NormText)textdata,dbid from tblBatches
inner join tblUniqueBatches on tblBatches.HashId=tblUniqueBatches.hashid
) b group by dbid order by sum(reads) desc
select dbid,ExecRatio batches,CPURatio CPU,ReadsRatio Reads,DurRatio Duration
from #queries_staticstics_groupbydb
下面是一个上面语句结果的一个例子:
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
![]() | 图解MySQL数据库的安装和操作 | 53859 |
![]() | Mysql数据库操作新手入门,手把手的教会你 | 36468 |
![]() | MySQL入门学习(二)入门篇 | 33092 |
![]() | MySQL入门学习(一)安装篇 | 28496 |
![]() | MY SQL常用命令 | 25517 |
![]() | MySQL入门学习(三)学习篇 | 20929 |
![]() | MySQL入门学习(四)学习篇(2) | 12353 |
![]() | MySQL入门学习(六)修改和备份、批处理 | 8935 |