搜云数据库查询

来源:互联网 发布:ftp怎么绑定域名 编辑:程序博客网 时间:2024/06/05 11:06

1。解压*.zip.001,*.zip.002压缩文件,总共30G

使用命令将两个压缩文件合成1个然后再解压就可以了
copy /b old.zip.001+old.zip.002 1.zip

 

2。安装SQL SERVER2012,注意,不能express版本,因为总共数据库有130G,而express最大限制是10G

此外,要保证安装SQL SEVER的硬盘有那么大的空间

数据库右键-》还原数据库-》设备选1.bak,耐心等待一段时间后就可以了。

3。数据查询

才两个表就那么大,尝试建索引,然而总是提示超时,必须在查询窗口用语句才行

不能选择过多字段,因为会超过1102 字节的最大限制。就这么3个字段,后来花了1个多小时终于建好索引了

总共是4亿的记录,所以需要这么长的时间
CREATE NONCLUSTERED INDEX [NonClusteredIndex-NamePassId] ON [dbo].[sgk]
(
 [name1] ASC,
 [pass] ASC,
 [id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

 

4。给这个表另外的field也建好索引,就可以愉快地查询了。

按照以下方法导出了QQ通讯录,就可以查找出自己好友的数据,导入数据库为acc表,可惜微信和支付宝不能导出通讯录

http://jingyan.baidu.com/article/e2284b2b3dba8be2e6118dd1.html

 select * from (
select s.name1,s.pass,s.email,a.fname,a.email as email3 from [dbo].[sgk] s,acc  a where s.name1=a.name
) as t where (len(t.pass)>0 or len(t.email)>0)

 

5。CSDN的数据是文本,有451万,图形界面的话总是报错,不如自己建个表,然后用命令来导入就顺畅了

wrong:
BULK INSERT csdn   FROM 'D:\06_Download\CSDN-中文IT社区-600万\CSDN-中文IT社区-600万\www.csdn.net.sql'
  WITH(      FIELDTERMINATOR='#',   ROWTERMINATOR='\r\n')

correct:
  BULK INSERT csdn   FROM 'D:\06_Download\CSDN-中文IT社区-600万\CSDN-中文IT社区-600万\www.csdn.net.sql'
  WITH(      FIELDTERMINATOR='#',   ROWTERMINATOR='\n')


   update csdn set uname=ltrim(rtrim(uname)),pass=ltrim(rtrim(pass)),email=ltrim(rtrim(email))

6。然而有时候资源文本分割符号TAB键跟空格键混在一起,还是需要格外的处理,每一条放在一个字段里面,再逐步分割

查找字符有时候charindex不成功,然后用patindex就可以正常找出了

  select  rtrim(ltrim(substring(a,1,patindex('% %',a)))) as a,rtrim(ltrim(substring(a,patindex('% %',a),len(a)-patindex('% %',a)+1))) as b
  into ty from ty2

 

CREATE FUNCTION dbo.f_splitstr( @str varchar(8000) )RETURNS @r TABLE(id int IDENTITY(1, 1), value varchar(5000)) AS BEGIN /* Function body */ DECLARE @pos int SET @pos = CHARINDEX(',', @str) WHILE @pos > 0 BEGIN INSERT @r(value) VALUES(LEFT(@str, @pos - 1)) SELECT @str = STUFF(@str, 1, @pos, ''), @pos = CHARINDEX(',', @str) END IF @str > '' INSERT @r(value) VALUES(@str) RETURN END select * from f_splitstr('中,国,人') 


7。资源文件里面会有不少重复记录,可以去掉重复记录后再建索引,建了索引后改字段名字飞快

select distinct * into wy from wy2

8。有些文本文件字段多,不是那么容易分割,索性就用sql server的全文索引,更加快捷
select * from kf where contains(sj,‘test');

不过全文索引对中文的支持不好,找到太多无用的记录了

此外,如果全文索引建好后又往表里插入数据,要记得手动填充,不然查不出来的。当然,也可以设置自动填充计划


 9。有些资源分割成许多个文本文件,可以先合并再一次性导入

  copy *.txt wy.txt

 列出所有文件名

  dir "D:\file" /b >fn.txt

0 0
原创粉丝点击