zoukankan      html  css  js  c++  java
  • 搜云数据库查询

    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

  • 相关阅读:
    Python装饰器
    Python学习【第十二篇】模块(2)
    Python学习【第十一篇】模块(1)
    Python学习【第十篇】基础之杂货铺
    Python学习【第九篇】函数
    Python学习【第八篇】Set集合
    Python学习【第七篇】基本数据类型
    Python学习【第六篇】运算符
    Python学习【第五篇】循环语句
    Python学习【第四篇】用户输入及判断
  • 原文地址:https://www.cnblogs.com/sui84/p/6777021.html
Copyright © 2011-2022 走看看