社区
疑难问题
帖子详情
一個讓人很困惑的問題。(有時候存取數據變慢)
Tosp2012
2011-08-05 09:26:41
我自己開發的程序,之前讀取數據(10w行)都一直很正常。
最近有時候總是出現不固定時間的訪問數據庫困難的情況。
平時讀取的數據3秒左右就可以顯示出來,有時候要10分鐘左右。
出現的頻率也很高,一天總有那麼幾次。哎,急死人啦。
真不知道是那裡出現了問題。
最近有做過數據庫同步的操作,不知道是否因為這個原因?
請各位指點迷津,萬分感謝!
...全文
110
19
打赏
收藏
一個讓人很困惑的問題。(有時候存取數據變慢)
我自己開發的程序,之前讀取數據(10w行)都一直很正常。 最近有時候總是出現不固定時間的訪問數據庫困難的情況。 平時讀取的數據3秒左右就可以顯示出來,有時候要10分鐘左右。 出現的頻率也很高,一天總有那麼幾次。哎,急死人啦。 真不知道是那裡出現了問題。 最近有做過數據庫同步的操作,不知道是否因為這個原因? 請各位指點迷津,萬分感謝!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Tosp2012
2011-08-05
打赏
举报
回复
[Quote=引用 5 楼 ssp2009 的回复:]
分析你的查询语句,查看执行计划,时间浪费在哪里。
[/Quote]
如果單條的測試查詢語句的話,時間也都是非常短的。一般情況下,程序都是正常的。就是有時候,有個幾分鐘出現讀數據卡死的情況。
Tosp2012
2011-08-05
打赏
举报
回复
[Quote=引用 4 楼 ap0405140 的回复:]
楼主是什么生猛的程序要一次读取10W行记录?真有必要吗,前端处理得过来吗.
可以先在表名后加(nolock)试试: select * from table (nolock)
如果还有问题,就要详细分析原因了.例如查看执行计划.
[/Quote]
是後臺的數據量有10w,前端要顯示的也就幾百條而已,是我沒表達清楚。Sorry
Tosp2012
2011-08-05
打赏
举报
回复
[Quote=引用 10 楼 nbdba 的回复:]
引用 8 楼 tosp2012 的回复:
引用 1 楼 nbdba 的回复:
这个最可能的原因是锁,就是数据插入和更新诸塞了查询动作,最简单的解决方法是在查询时允许脏读,具体实现是在查询加with(nolock)提示。
寫數據時,我的程序確實有使用了事物。但這個操作的時間會非常短的。數據量也比較少
测试时最有效的,方法给你了,试不试由你
如果一切问题都是可以用分析来解决的话,……
[/Quote]
說得要道理,已經按照您的方法測試了。但這個結果不是馬上就能知道,因為問題是有時候才會發生。
nzperfect
2011-08-05
打赏
举报
回复
你的应用服务器和DB服务器在一个机房吗?
你的情况要具体分析,首先要排除网络情况
然后要看一下sql 内存使用情况,在查询变慢时,db server上的等待情况等等
Tosp2012
2011-08-05
打赏
举报
回复
[Quote=引用 3 楼 nbdba 的回复:]
搂主第一步应该是将你的查询加with(nolock)提示测试。
你的情况还有一种可能是,你的内存设置不合理,没有设置SQL最大内存,这样运行时间久了以后,所有内存被占用,大数据量查询时需要与硬盘交换数据引起速度下降,这个检查并设置合适的最大内存数就可以了
另外,检查下一次返回10W数据的必要性,如果是给用户直接看的,一般几百条就看不过来了,如果是为了传给其他地方或者导出,那就没问题。
……
[/Quote]
我試試加 nolock,另外我沒有說明白。是後臺數據量有10w條,不是要全部一次性返回。檢索出來的數據也就幾百條而已。
NBDBA
2011-08-05
打赏
举报
回复
[Quote=引用 8 楼 tosp2012 的回复:]
引用 1 楼 nbdba 的回复:
这个最可能的原因是锁,就是数据插入和更新诸塞了查询动作,最简单的解决方法是在查询时允许脏读,具体实现是在查询加with(nolock)提示。
寫數據時,我的程序確實有使用了事物。但這個操作的時間會非常短的。數據量也比較少
[/Quote]
测试时最有效的,方法给你了,试不试由你
如果一切问题都是可以用分析来解决的话,就不会有性能问题了,分析往往会出来似是而非的结果,这时辩论是没有任何效果的,唯有测试
Tosp2012
2011-08-05
打赏
举报
回复
[Quote=引用 2 楼 acherat 的回复:]
楼主可能要去分析,跟踪看看,找到引起的具体因素。
[/Quote]
這個就很難跟蹤啊,問題是這個不定時的發生。當你測試的時候,都一切正常。
Tosp2012
2011-08-05
打赏
举报
回复
[Quote=引用 1 楼 nbdba 的回复:]
这个最可能的原因是锁,就是数据插入和更新诸塞了查询动作,最简单的解决方法是在查询时允许脏读,具体实现是在查询加with(nolock)提示。
[/Quote]
寫數據時,我的程序確實有使用了事物。但這個操作的時間會非常短的。數據量也比較少
NBDBA
2011-08-05
打赏
举报
回复
[Quote=引用 6 楼 tosp2012 的回复:]
謝謝各位的解答,程序在我的測試SQL上是沒有問題的。
但在應用服務器上的SQL就有上述的問題。
服務器放在香港,我想這不是問題的關鍵吧?
[/Quote]
测试服务器没有这么多用户并发誓不会产生问题的
Tosp2012
2011-08-05
打赏
举报
回复
謝謝各位的解答,程序在我的測試SQL上是沒有問題的。
但在應用服務器上的SQL就有上述的問題。
服務器放在香港,我想這不是問題的關鍵吧?
快溜
2011-08-05
打赏
举报
回复
分析你的查询语句,查看执行计划,时间浪费在哪里。
唐诗三百首
2011-08-05
打赏
举报
回复
楼主是什么生猛的程序要一次读取10W行记录?真有必要吗,前端处理得过来吗.
可以先在表名后加(nolock)试试: select * from table (nolock)
如果还有问题,就要详细分析原因了.例如查看执行计划.
NBDBA
2011-08-05
打赏
举报
回复
搂主第一步应该是将你的查询加with(nolock)提示测试。
你的情况还有一种可能是,你的内存设置不合理,没有设置SQL最大内存,这样运行时间久了以后,所有内存被占用,大数据量查询时需要与硬盘交换数据引起速度下降,这个检查并设置合适的最大内存数就可以了
另外,检查下一次返回10W数据的必要性,如果是给用户直接看的,一般几百条就看不过来了,如果是为了传给其他地方或者导出,那就没问题。
AcHerat
2011-08-05
打赏
举报
回复
楼主可能要去分析,跟踪看看,找到引起的具体因素。
NBDBA
2011-08-05
打赏
举报
回复
这个最可能的原因是锁,就是数据插入和更新诸塞了查询动作,最简单的解决方法是在查询时允许脏读,具体实现是在查询加with(nolock)提示。
Tosp2012
2011-08-05
打赏
举报
回复
初步估計問題的原因:
這臺服務器的數據是從其他服務器同步更新過來的,也許剛在同步這個表的時候,恰好客戶端要存取這個表的資料,導致客戶端出現等待(7、8分鐘)的情況。
現在的做法就是停止同步更新,測試幾天看是否還有同樣的問題發生。
Tosp2012
2011-08-05
打赏
举报
回复
[Quote=引用 16 楼 fredrickhu 的回复:]
引用 12 楼 perfectaction 的回复:
你的应用服务器和DB服务器在一个机房吗?
你的情况要具体分析,首先要排除网络情况
然后要看一下sql 内存使用情况,在查询变慢时,db server上的等待情况等等
支持大叔的说法 具体情况具体分析
[/Quote]
是的,具體問題具體分析。
1、首先,網絡是沒有問題的,因為出問題時,ping值很穩定30MS左右。
2、SQL的使用內存也沒發現有異常情況。
老潘
2011-08-05
打赏
举报
回复
跟踪一下,找出导致性能问题的原因
--小F--
2011-08-05
打赏
举报
回复
[Quote=引用 12 楼 perfectaction 的回复:]
你的应用服务器和DB服务器在一个机房吗?
你的情况要具体分析,首先要排除网络情况
然后要看一下sql 内存使用情况,在查询变慢时,db server上的等待情况等等
[/Quote]
支持大叔的说法 具体情况具体分析
解决localstorage容量大导致页面加载变慢
而且每条数据很长,所以每次页面加载/更新慢的让人受不了 原因分析: 原因:localstorage容量标准是5MB,我负责的项目原先的存储在localstorage的数据量太大,导致性能低下。 解决方案: 我的解决
电脑硬盘速度明显变慢的原因
以为硬盘坏了,在网上找了一下,找到了下边这个重要的原因,因为windows有的时候会自动关闭硬盘的DMA工作模式。什么是DMA,英文全名叫:Direct Memory Access,中文的意思就是:直接内存
存取
。就是可以让内存直接和...
Sql查询变慢的原因及优化方法总结
这里写自定义目录标题Sql查询变慢的原因及优化方法总结新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容...
pytorch中Dataloader读取数据太慢的问题
在dataset中,会将数据从磁盘读入内存中,如果启用了dataloader中的pin_memory,就会让数据常驻内存,同时设置num_workers还能实现多进程读取数据,但即使设置了这些,数据加载速度依然没有质的提升。数据读取的速度...
某个表有近千万数据,CRUD比较慢,如何优化?
此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如何做,对于一个存储设计,必须考虑业务特点,收集的信息如下: 1.数据的容量:1-3年内会大概多少条数据,每条数据大概多少字节; 2.数据项:是否有大字...
疑难问题
22,207
社区成员
121,730
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章