数据库数据流量太大-问题诊断

问题:

运维报告某一台数据库,数据流量太大,具体数值不清楚。超过其他正常数据库的流量。

问题分析:

数据流量过大,猜测是一是数据库访问量增加(可能性不大,基本排除),二是某些项目的sql查询了单表的大量数据。有可能是查询条件筛选访问过大。

公司项目:

dotnet4.5、entityframe work 6.1.3、sqlServer

处理方法:

1,sqlServer  统计查询返回的数据量

https://docs.microsoft.com/zh-cn/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-query-stats-transact-sql?view=sql-server-2017

SELECT TOP 50
qs.total_worker_time/qs.execution_count as [Avg CPU Time],
SUBSTRING(qt.text,qs.statement_start_offset/2,
(case when qs.statement_end_offset = -1
then len(convert(nvarchar(max), qt.text)) * 2
else qs.statement_end_offset end -qs.statement_start_offset)/2)
as query_text,
qt.dbid, dbname=db_name(qt.dbid),
qt.objectid ,
qs.total_rows,qs.last_rows ,qs.max_rows ,qs.min_rows
FROM sys.dm_exec_query_stats qs
cross apply sys.dm_exec_sql_text(qs.sql_handle) as qt
ORDER BY total_rows DESC;

2,经以上查询,发现有一张表的查询sql,无where条件。

再对对应的项目,进行代码核查,发现Entity FrameWork中where条件未生成。

具体代码不在我手里。无EF业务代码。

where条件生成原理,请查看Entity FrameWork的具体细节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值