有一千万条数据,请教如何优化大量数据的查询,磁盘容易占满

wjr2513 2015-08-17 02:45:46
我用的SQL server数据库,然后用控制台应用,用ado.net访问的数据库

用的Parallel.For做并行循环测试,看看循环执行一万次登录需要多久的时间,才开始只有20万数据的时候,速度真的很快,CPU占用率也基本是100%,磁盘和内存占不了多少,一秒能执行1万次登录

现在我插入一千万条数据了,结果速度瞬间就下来了,差不多执行1万条要25秒左右,我看CPU占用率基本没有上10%,内存也很少,就是磁盘,一直都是满的,
明显的IO太高,现在特来请教,这种情况是正常的吗,有什么好的方法去控制磁盘读写数据量之类的,大神们,请指教。。。

尽量吧磁盘降下来,吧CPU占用率提上去,不知道我的思路对不对,就算对也不会搞啊
...全文
334 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
_lee_chong 2015-08-18
  • 打赏
  • 举报
回复
千万条的数据,但是表结构这么简单,又没有联接,这么耗时应该有优化空间;
_lee_chong 2015-08-18
  • 打赏
  • 举报
回复
mssql有个性能测试的功能,可在查询窗口上你的查询代码,运行性能测试,检测慢的原因,具体使用方式及怎么分析测试结果,去搜索下吧;
wjr2513 2015-08-17
  • 打赏
  • 举报
回复
引用 5 楼 clark_kidd 的回复:
varchar 效率高,如果不存unicode字符的话,占得空间小,IO内存等肯定也小
谢谢,我试试,不过我等重新录入数据。。直接改不允许修改
clark_kidd 2015-08-17
  • 打赏
  • 举报
回复
varchar 效率高,如果不存unicode字符的话,占得空间小,IO内存等肯定也小
wjr2513 2015-08-17
  • 打赏
  • 举报
回复
引用 3 楼 clark_kidd 的回复:
试试 userName nvarchar→varchar 类型
这是有什么讲究吗
clark_kidd 2015-08-17
  • 打赏
  • 举报
回复
试试 userName nvarchar→varchar 类型
wjr2513 2015-08-17
  • 打赏
  • 举报
回复
引用 1 楼 clark_kidd 的回复:
索引怎么建的?
查询怎么写的?
贴出来看看


一共就3个字段,Id,userName,Password,其中userName设为了聚集索引,id非聚集加自增长,


clark_kidd 2015-08-17
  • 打赏
  • 举报
回复
索引怎么建的? 查询怎么写的? 贴出来看看

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧