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: 6_DownloadCSDN-中文IT社区-600万CSDN-中文IT社区-600万www.csdn.net.sql'
WITH( FIELDTERMINATOR='#', ROWTERMINATOR='
')
correct:
BULK INSERT csdn FROM 'D: 6_DownloadCSDN-中文IT社区-600万CSDN-中文IT社区-600万www.csdn.net.sql'
WITH( FIELDTERMINATOR='#', ROWTERMINATOR='
')
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