首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

2000W数据的查询太慢了,求解决办法

2013-11-08 
2000W数据的查询太慢了,求解决方法最近很火的数据库搞到了。不过I3、4G的机器表示跑SQL语句压力太大,各位有

2000W数据的查询太慢了,求解决方法
最近很火的数据库搞到了。不过I3、4G的机器表示跑SQL语句压力太大,各位有什么办法么??
例如:

                              


[解决办法]


在name上创建一个索引好慢呀,还超时,怎么办??
直接用脚本操作 不要用UI 。 
[解决办法]


在name上创建一个索引好慢呀,还超时,怎么办??
直接用脚本操作 不要用UI 。 

我的双核2.7,4g内存,貌似创建索引时用了5分钟左右,没有超时,不过弹出了一个警告信息,具体也记不清了,但我没管它,直接去查询,发现速度的确比没创建索引时快了n倍
------解决方案--------------------


引用:
Quote: 引用:

楼主啊,我是小白一个。2000W的数据也下载了,SQL也安装了,资料也导入了。可是很悲剧,我不懂这些查询语句,可以交流吗????万分需要您的帮助!!!想发私信给你也发不了,因为说要互相关注才能发。就留言在这里吧。希望能多认识一些懂得数据库的IT界朋友,小白表示无比悲催,啥都查不了。请直接加我的QQ,万分重要,QQ3&1#0&6#26%02#3有厚报!!!
我也不是SQL高手,楼上很多才是啊。如果你有问题,直接发个帖就行了,写上你要干什么就行了。例如说:我想要查询北京人张三这个人的开房记录,SQL语句怎么写?


select * from cdsgus where name='张三' and address like '%北京%'
[解决办法]
引用:
Quote: 引用:

首先这种全表扫描快不了,然后,如果ctfid不重复,可以用这个语句来查询总数:
SELECT rowcnt FROM sys.sysindexes WHERE id=OBJECT_ID('cdsgus') AND indid=0

你这个语句运行出来结果为rowcnt
这是查表中的行数,如果单纯的select count(*) from 表,目的也是查行数
[解决办法]
引用:
I5+4G内存+普通硬盘怎么破啊,一运行查询语句就内存吃紧,建立索引也是内存吃紧,电脑卡爆了,话说用脚本建立索引怎么弄


建立索引,只有select count(*) from cdsgus就能非常快:

create idnex idx_cdsgus_CtfId on cdsgus(CtfId)

[解决办法]
用SQL2012 的列存储索引    create nonclustered columnstore index  i_cx

  on cdsgus([Name],ctfid,address)

建好索引后,可极快查询

热点排行