电脑迷

电脑迷

IT博客 首页 新随笔 联系 聚合 管理
  3 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

2007年5月17日 #

我当前的项目中包括一个6200万行、500多列的表。其中的数据来自SQL Server以外,它们到达的表中有一个标识主键,所有剩下的列以varchar(50)形式保存。

问题解决

有许多日期以YYYYMMDD格式保存,这是我注意到的第一个问题。我把这些日期改为整数列。然后我发现许多整数以varchar形式保存,我把它们都改为整数。

接下来,许多列中包含“Y”或“N”或NULL。我们很可能会把它们转换成位列,但这样做存在一个重大的缺陷——你不能索引一个位列。因此,我把它们改成char(1) NULL。

此外,还有一些列中保存有邮政编码,前面一列为五个数字,后面一列为四个数字或NULL。我将它们分别改成char(5)和char(4),都为NULL。

我遇到的另外一个问题是,我无法明白相当一部分列中的内容。我把它们单独处理,为varchar(50)。我希望确定每个varchar列中保存的字符串的最大长度,但要检查6200万行中的所有数据中不切实际的。因此,我选择生成所有列的char或varchar列表。


SELECT

COLUMN_NAME, DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH, IS_NULLABLE

FROM

INFORMATION_SCHEMA.COLUMNS

WHERE TABLE_NAME ='tblArthurClean'

AND DATA_TYPE IN('char','varchar')
 

我复制结果表中的第一列,把它粘贴到记事本中(这是我最喜欢的文本编辑器,因为它具有优秀的查找-替换功能。)要确定一个特定列中的最长数据,使用下列脚本: 小虫网络技术http://www.chinaccna.com


SELECT Max(Len( ColumnName ))

FROM TableName
 

推而广之,我希望遍历列列表并生成我需要的声明。我把需要的内容集中到一些格式化行中,用一个单独的查询来达到这个目的。


SELECT

',Max(Len( ' + COLUMN_NAME + ' ))
AS ' + COLUMN_NAME

FROM

INFORMATION_SCHEMA.COLUMNS

WHERE TABLE_NAME = 'tblArthurClean'

AND DATA_TYPE IN( 'char', 'varchar' )
 

列表A中是一个简短的结果集。现在按照以下步骤执行:


Max(Len( Record_Length_Indicator_or_Filler ))
AS Record_Length_Indicator_or_Filler,  
Max(Len( Job_Number )) AS Job_Number,   
Max(Len( Personal_or_Firm_Name ))
AS Personal_or_Firm_Name,   
Max(Len( Mailing_Address_Supplied_by_Customer
 

把结果集粘贴到一个文本编辑器中。

在第一行前面插入SELECT。

在文件末尾增加FROM和表的名称。

我在文件开头和末尾添加以下内容。


SELECT GetDate()

GO
 

然后我删除输出结果第一行前面的逗号,把它保存为一个查询,加载再让它运行。


我对它在我的服务器上的性能非常满意。它只用了一个小时多一点的时间计算出结果——对于分析一个6200万行几百列的表,时间不算太长。


得到的结果是一行结果集,我可以用它作为修改表结构和列名称的指导,并把这些结果与原始表联系起来,做出相应的调整。


本文说明退一步思考如何能够为你节省大量的输入时间。我的座右铭是:“只要SQL能够做的,它都应该完成。”

posted @ 2007-05-17 19:43 电脑迷 阅读(396) | 评论 (0)编辑 收藏

你想不想更改它一成不变的欢迎画面呢?有了Logon Loader帮你修改Windows XP 登陆画面,现在再不用每天对着同一个欢迎画面了,只要你愿意就可以天天换登陆画面。

  笔者从国外网站搜罗来的下载率极高的登录界面,请使用LogonLoader登录界面更换器加载!!

  使用方法:

  1:先把你下载的Zip登录界面文件解压缩后放到:C:\WINDOWS\Resources目录下,如果是EXE文件,则先点击安装一下(安装时务必将广告或其它附带的选项小勾去掉,切记!),然后就会出现一个解压缩包界面,将里面的文件移到C:\WINDOWS\Resources目录下即可。

  2:再运行Logon Loader,在选项选择C:\WINDOWS\Resources文件夹,保存。

  3:最后点击Logon Loader左方的“选择一个登陆画面”,去到上述文件夹里,再选你想要换的界面就行了。

  还原XP原始登陆界面的方法:

  在Logon Loader下载压缩包中的logrecvr.exe文件为官方提供的恢复工具,在DOS或Windows中执行~回车即可恢复缺省。

  我们先来看一下它的小档案

 软件名称:
 Logon Loader
 软件版本:
 3.0汉化版
 软件大小:
 225KB
 软件授权:
 免费
 适用平台:
 Windows 98/Me/2000/XP
 下载地址: 点击这里下载


  针对使用上的问题,在这里一并解答:

  1.病毒是误报,我用瑞星2005正版最新病毒库杀了,没有毒,并且我一直在使用中

  2.关于占用资源的问题,这个界面只是在登录的时候才出现,进入系统后即不再运行,不再占用资源,请系统资源紧张的朋友放心.另也不会导致开关机速度拖慢,请大家试试,自己就会清楚。

  4.因为下载链接是国外的服务器,带宽不够的朋友下载可能慢一点。

  5.Win XP SP2环境下不能使用LogonLoader的问题,是你的系统问题,笔者自己是VLK SP2版本,使用没有问题!或许你可以换个LogonLoader看看。

  6.下载不了的问题,我测试了,可以下载,建议不要右键用工具下载,直接点击下载即可。


[点击下载这个登陆界面]


[点击下载这个登陆界面]


[点击下载这个登陆界面]


[点击下载这个登陆界面]


[点击下载这个登陆界面]


[点击下载这个登陆界面]


[点击下载这个登陆界面]


[点击下载这个登陆界面]


[点击下载这个登陆界面]


[点击下载这个登陆界面]

[1] [2] 下一页

 45款超炫Windows XP登陆界面-[将本页加入收藏夹]

下面关于windowsXP相关的文章: 没有相关文章

在百度搜索:45款超炫Windows XP登陆界面

    

  • 上一篇文章:    
  • posted @ 2007-05-17 19:42 电脑迷 阅读(391) | 评论 (0)编辑 收藏

    svchost.exe是什么? 完解SVCHOST.exe进程之谜

    svchost.exe是nt核心系统的非常重要的进程,对于2000、xp来说,不可或缺。很多病毒、木马也会调用它。所以,深入了解这个程序,是玩电脑的必修课之一。
      大家对windows操作系统一定不陌生,但你是否注意到系统中“
    svchost.exe”这个文件呢?细心的朋友会发现windows中存在多个 “svchost”进程(通过“ctrl+alt+del”键打开任务管理器,这里的“进程”标签中就可看到了),为什么会这样呢?下面就来揭开它神秘的面纱。
    发现
      在基于nt内核的windows操作系统家族中,不同版本的windows系统,存在不同数量的“svchost”进程,用户使用“任务管理器”可查看其进程数目。一般来说,win2000有两个svchost进程,winxp中则有四个或四个以上的svchost进程(以后看到系统中有多个这种进程,千万别立即判定系统有病毒了哟),而win2003 server中则更多。这些svchost进程提供很多系统服务,如:rpcss服务(remote procedure call)、dmserver服务(logical disk manager)、dhcp服务(dhcp client)等。
      如果要了解每个svchost进程到底提供了多少系统服务,可以在win2000的命令提示符窗口中输入“tlist -s”命令来查看,该命令是win2000 support tools提供的。在winxp则使用“tasklist /svc”命令。
    svchost中可以包含多个服务
    深入
      windows系统进程分为独立进程和共享进程两种,“svchost.exe”文件存在于“%systemroot% system32”目录下,它属于共享进程。随着windows系统服务不断增多,为了节省系统资源,微软把很多服务做成共享方式,交由 svchost.exe进程来启动。但svchost进程只作为服务宿主,并不能实现任何服务功能,即它只能提供条件让其他服务在这里被启动,而它自己却不能给用户提供任何服务。那这些服务是如何实现的呢?
      原来这些系统服务是以动态链接库(dll)形式实现的,它们把可执行程序指向 svchost,由svchost调用相应服务的动态链接库来启动服务。那svchost又怎么知道某个系统服务该调用哪个动态链接库呢?这是通过系统服务在注册表中设置的参数来实现。下面就以rpcss(remote procedure call)服务为例,进行讲解。
      从启动参数中可见服务是靠svchost来启动的。
    实例
      以windows xp为例,点击“开始”/“运行”,输入“services.msc”命令,弹出服务对话框,然后打开“remote procedure call”属性对话框,可以看到rpcss服务的可执行文件的路径为“c:\windows\system32\svchost -k rpcss”,这说明rpcss服务是依靠svchost调用“rpcss”参数来实现的,而参数的内容则是存放在系统注册表中的。
      在运行对话框中输入“regedit.exe”后回车,打开注册表编辑器,找到[hkey_local_machine systemcurrentcontrolsetservicesrpcss]项,找到类型为“reg_expand_sz”的键“magepath”,其键值为“%systemroot%system32svchost -k rpcss”(这就是在服务窗口中看到的服务启动命令),另外在“parameters”子项中有个名为“servicedll”的键,其值为“% systemroot%system32rpcss.dll”,其中“rpcss.dll”就是rpcss服务要使用的动态链接库文件。这样 svchost进程通过读取“rpcss”服务注册表信息,就能启动该服务了。
    解惑
      因为svchost进程启动各种服务,所以病毒、木马也想尽办法来利用它,企图利用它的特性来迷惑用户,达到感染、入侵、破坏的目的(如冲击波变种病毒“w32.welchia.worm”)。但windows系统存在多个svchost进程是很正常的,在受感染的机器中到底哪个是病毒进程呢?这里仅举一例来说明。
      假设windows xp系统被“w32.welchia.worm”感染了。正常的svchost文件存在于“c:\windows\system32”目录下,如果发现该文件出现在其他目录下就要小心了。“w32.welchia.worm”病毒存在于“c:\windows\system32wins”目录中,因此使用进程管理器查看svchost进程的执行文件路径就很容易发现系统是否感染了病毒。windows系统自带的任务管理器不能够查看进程的路径,可以使用第三方进程管理软件,如“windows优化大师”进程管理器,通过这些工具就可很容易地查看到所有的svchost进程的执行文件路径,一旦发现其执行路径为不平常的位置就应该马上进行检测和处理。
      由于篇幅的关系,不能对svchost全部功能进行详细介绍,这是一个windows中的一个特殊进程,有兴趣的可参考有关技术资料进一步去了解它。
    posted @ 2007-05-17 19:41 电脑迷 阅读(463) | 评论 (0)编辑 收藏

    仅列出标题