与世无争情义重,平淡人生知己真

导航


统计

  • 随笔 - 259
  • 文章 - 21
  • 评论 - 149
  • 跟踪 - 2

公告

做一个诚实、正直、坚强、快乐的人!

文章分类

档案

随笔分类

相册

多媒体

A: .net 技术

B: VC 技术

C: bloggers

D: 个人blog

E: 技术站点

F: 文化生活

G: 经管

H:单片机/嵌入式

I: 其它

登录

    帐号
    密码
    记住我:
     

2008年3月8日 #

 

  Flash破解与加密

在一些名门论坛,谈论破解之术被明文禁止甚至会招来不尽的鄙视。我一直都对这个观点有种很异样的感觉。诚然,尊重原创是一种美德。然而对于不会说话的工具而言,其本身又岂会有善恶之分?有善恶之分的,是使用这些工具的人。

因为无法控制其中的尺度,只好一尽排斥,这是中国官方乃至国际官方一惯的作风。言论自由成为人人崇尚却又时时为其所害的一面幌子。自由,也有度。

破解和防破解是必将同时存在的对立体。如同制造病毒和防范病毒一样。因为制造病毒的言论从不会公开出现在一些名门场合,所以每当病毒来袭,防范的一方总是措不及防。这是当然,世上有几名黑客会自报家门?

幸运的是,Flash 破解是一种公开的技术。然而不幸的是,这种公开的技术却被鄙视为一种下流手段。说句公道话,这里面确实有一些正人君子,可是更有一些人前一套人后一套的道貌岸然之士。这让我想起一句话:“宁做真小心,不做伪君子。”

既然如此,对于这种神奇的技术,为什么不能堂堂正正的来讨论?我们更希望看到的,不是这种偷偷摸摸,而是从破解中汲取,从防范中得到。

一、破解篇

这里所谈的破解,包括提取swf、破解已加密及未加密的swf,即通常所说的“swf to fla”。

获取swf的工具:

Flash Saver - 保存网页中的swf
Flash文件格式转换器(FlashChanger) - 转换未加壳的exe为swf
Flash吸血鬼 - 不得已时用之。
提取范围很广,只要能看到Flash的窗口,包括加壳及未加壳的exe、网页等等。在使用Flash吸血鬼提取swf的过程中建议不要进行其他操作,否则速度会变得极其缓慢,配置不好的机器有可能死机。这也是这款软件目前版本(v2.2)最大的一个不足之处。如果想中止程序,可以在任务管理器中结束。
使用Temporary Internet Files(IE缓存)下载MV、SWF等资源

偶尔会有网友问我关于网上 MV 如何下载,其实方法很简单,只要到 Temporary Internet Files 文件夹下就能找到想找的大部分网络资源。

Temporary Internet Files 是 IE 的临时文件夹。目录一般在C:\Documents and Settings\你的用户名\Local Settings\Temporary Internet Files

使用 Temporary Internet Files 查找资源的技巧:先清空 Temporary Internet Files,然后用 IE 打开或刷新你要找的资源 (比如 MV) 所在的网页。再刷新 Temporary Internet Files 就能看到了,如果资源比较大,需要过一会,等下载完后再刷新才能看到。

有时,部分资源会被隐藏。查看 Temporary Internet Files 的属性可以断定里面有文件,可是里面的内容却看不到。此时,用 WinRAR 压缩一下 Temporary Internet Files 就能看到了。为了不浪费时间,压缩的时候,压缩方式请选择“存储”。为了便于搜索查找,可以把压缩后的 Temporary Internet Files 解压到另一个目录下,里面的东西此时已经一目了然,分别分布在 Content.IE5 文件夹下的四个子文件夹中。

可以将 Temporary Internet Files 移动到其他分区下,一方面可以给系统分区减负,另一方面也便于查找。移动方法如下:
Internet 选项 → 常规选项卡 → 在“Internet 临时文件”区点击“设置” → 移动文件夹 → 选择一个分区,例如选择 D,就把 Temporary Internet Files 移到了 D 盘的根目录下。最后会提示重启,其实不是重启,是注销。记得保存当前的其他工作,按确定注销。

从Word中提取Flash
测试环境:WindowsXP / Office2003

需要一款16进制编辑工具WinHex
打开含有Flash的Word文档,点击“控件工具箱”的“设计模式”按钮进入设计模式,选择Word中的Flash,复制粘贴到任意文件夹,会看到一个“片段”文件。
打开WinHex,将该“片段”文件拉到WinHex中,单击下拉菜单“搜索”→“查找16进制值”,搜索“465753”,在搜索到的“465753”中的“4”位置上单击右键,选择“选块开始”。
继续“搜索”→“查找16进制值”,搜索“3A5C”,然后按住F3,直到出现“3A5C未找到”,点击“是”,在最后搜索到的“3A5C”中“C”位置上单击右键,选择“选块结尾”。(注:少数情况可能会搜索不到“3A5C”,则改为搜索“3A”或“5C”,方法相同)。
在选块内任意处点击右键→编辑→复制选块→进入新文件→输入文件名 (如test.swf) →保存。
常用破解工具

谈到破解,很多朋友都会想到时下流行的闪客精灵。以下为常用的破解工具,按我使用的频繁程度,分别有:

硕思闪客精灵(Sothink SWF Decompiler)
Action Script Viewer(ASV)
Imperator FLA(有使用者译为“罗马统治者”)
(这是我最早认识的用来还原swf的工具,可惜一直在关注也没有发现2.0以上的破解版,只有1.6.9.8的破解版,这已经是3年前的版本了,只对Flash6.0以下有效。)
硕思闪客之锤(Sothink SWF Quicker)
以上四款,以Decompiler最为常用。ASV虽然强大,但在实用性方面却不如Decompiler,这应当也是为什么数年来Decompiler能够长久风靡的原因。而ASV对付Flashincrypt加密过的swf却是轻而易举,这大大弥补了Decompiler的不足。不少网友知道用ASV来查看swf,但是不知道如何使用它来将swf还原成fla,以5.01版本为例,只需两步:

打开等待破解的swf文件(支持拖放打开),输出重建数据(File → Export Rebuild Data (JSFL)...)到某一目录下,例如:桌面\新建文件夹。
双击目录下的“rebuildcommand.jsfl”,系统将启动Flash重建fla文件。根据原swf文件的复杂程度,重建fla所需的时间将有所区别。
破解附言

破解swf,依赖的主要是现成工具,多款工具综合使用,一款不行试另一款,如果作者有意加密,视破解者自身水平,在获取swf时将遇到规模可大可小的困难,在破解时亦将不可避免的多花些许心思。如果遇到 SWF Encrypt 加密过的作品,只能对其中的AS无奈了。前几天听闻闪客互联的猎人兄对 SWF Encrypt 有破解之法,然而似有卖关之嫌,未见其实。

二、加密篇

加密方法流传不少,此处只谈我所知的较为实用的方法:

更改后缀,避开 Flash Saver 等下载工具

此方法可有效避开 Flash Saver 等下载工具。使提取者不得不从缓存中查找文件,一定程度上增加了提取难度。后缀可改为 gif、jpg、txt 等等。虽然可以更改后缀,然而在插入到网页时,仍然需要以 swf 的形式插入,使用此 swf 来加载改过后缀的影片。

限制 Flash 在指定域名/网址中播放 (Flash 防盗链)


url = "http://www.zhugao.cn";

/*
以下判断网址的前 20 个字符(字符数根据你的网址作相应修改),如果与"url"不一致则播放失败。注:swf 可以放在任意目录下,只要网址的前 20 个字符是正确的。
*/

if(_url.substring(0, 20)<>url){
gotoAndStop(2);

/*
这里可以做一些东西,例如:将发布设置中的“本地回放安全性”设为“只访问网络”,然后在这里做无数的弹窗
onEnterFrame = function(){
getURL("http://www.zhugao.cn", "_blank");
}
*/

}else{
gotoAndPlay(3); //跳到正常播放
}
为了便于阅读,以下是没有注释的代码:


url = "http://www.zhugao.cn";
if(_url.substring(0, 20)<>url){
gotoAndStop(2);
}else{
gotoAndPlay(3);
}

如果要允许多个域名,可以这样写:
url = "http://www.zhugao.cn";
url2 = "http://zhugao.cn";
if((_url.substring(0, 20)==url) || (_url.substring(0, 16)==url2)){
gotoAndPlay(3);
}else{
gotoAndStop(2);
}

注意:用此方法,设计过程中导出时的技巧:
用IE打开先打开指定目标网址,以避免在导出时频繁弹出窗口,如果无效,请将默认浏览器设置成IE,关闭导出时的player窗口即可继续编辑。有时Flash软件会因此发生错误而被强行结束,导出前请保存文档,切记!

常用加密工具

SWF Encrypt
可有效防止目前流行的几乎所有破解工具对其所加密作品的AS查看。2006年10月更新为3.0.12,尽管加密后文件仍然有明显的增大(视原swf的复杂程度,增大幅度有所不同),然而令人振奋的是,已经支持放射状渐变,支持Flash8.0。加密技巧:分解swf逐个加密,以尽量避免加密后单个文件体积庞大的问题。
Flashincrypt
可轻易防止闪客精灵目前的版本对其所加密作品的AS查看,加密后的文件几乎保持原文件大小。遗憾的是不能防止 Action Script Viewer 5.0 以上的版本。
适当应用与javascript结合

加密JS,从而实现间接加密swf。相关工具及例子:

T4nk JS混淆工具
用于javascript的混淆加密。
Encrypt HTML
加密网页脚本,包括 HTML source code, javascript, VBScript, text, links and graphics 等。
从Flash到JavaScript的通讯,从JavaScript到Flash的通讯
控制 Flash Player 的 JavaScript 方法一览表:
·播放动画:Play()
例:(网页中的 Flash id).Play();
·停止动画:StopPlay()
·动画是否正在播放:IsPlaying()
·跳转到某帧:GotoFrame(frame_number)
·获取动画总帧数:TotalFrames()
·回传当前动画所在帧数:CurrentFrame()
·使动画返回第一帧:Rewind()
·放大指定区域:SetZoomRect(left,top,right,buttom)
·改变动画大小:Zoom(percent)
·使动画在 x,y 方向上平移:Pan(x_position,y_position,unit)
·返回动画被载入的百分比:PercentLoaded()
·加载动画:LoadMovie(level_number,path)
例:(网页中的 Flash id).LoadMovie(0, "***/***.swf");
·movie_clip 跳转到指定帧数:TGotoFrame(movie_clip,frame_number)
例:(网页中的 Flash id).TGotoFrame("_root.实例名.次实例名",帧数);
·movie_clip 跳转到指定标签:TGotoLabel(movie_clip,label_name)
例:(网页中的 Flash id).TGotoLabel("_root.实例名.次实例名","标签名");
·回传 movie_clip 当前帧:TCurrentFrame(movie_clip)
·回传 movie_clip 当前标签:TCurrentLabel(movie_clip)
·播放 movie_clip:TPlay(movie_clip)
·停止 movie_clip 的播放:TStopPlay(movie_clip)
·获取变量:GetVariable(variable_name)
·变量赋值:SetVariable(variable_name,value)
·call 指定帧上的 action:TCallFrame(movie_clip,frame_number)
·call 指定标签上的 action:TCallLabel(movie_clip,label)
·获取 movie_clip 的指定属性:TGetProperty(movie_clip,property)
·设置 movie_clip 的指定属性:TSetProperty(movie_clip,property,number)
在Word中插入Flash
测试环境:WindowsXP / Office2003

可用在独立文件给客户看的时候,尽管可以用前述方法从word中提取swf,然而此方法仍然具有一定防范效果。

新建一Word文档并保存。
在Word中依次单击下拉菜单“视图”→“工具栏”→“控件工具箱”。
在“控件工具箱”中点击“其他控件”,选择列表中的“Shockwave Flash Object”。
右键单击插入进来的Flash播放控件,选择“属性”。
在“属性”窗口的“Movie”栏输入Flash动画的路径及文件名,需要用绝对路径,可采用以下两种:
file:///C:/test/test.swf
http://www.zhugao.cn/test.swf
将“EmbedMovie”项设置为“True”,使Flash嵌入到Word中。“Height”和“Width”分别为Flash的高和宽。“Scale”默认为ShowAll,为缩放模式,始终显示Flash中的所有内容,如果改为NoScale则始终按1:1比例,不会缩放Flash中的内容。
单击控件工具箱上的“退出设计模式”按钮,在Word中即可播放Flash了。再次按下该按钮则暂停播放,进入设计模式。如当时未显示Flash,请保存退出Word,再打开该Word文档,点击“退出设计模式”按钮即可看到Flash。
打包成加壳exe

用Flash的默认程序打包的exe很容易转成swf,SWFKit是一款很不错的加壳打包软件,不易被还原。

三、后记

破解时需要多种方法或工具综合使用,加密亦然,需根据用途综合加密。

对于网络用swf的推荐加密方案:
更改后缀,限制在指定域名播放,分解成多个swf并用SWF Encrypt加密。
此方案主要依赖于SWF Encrypt,重在保护作品的AS,一旦SWF Encrypt遭到破解软件的有效攻击,此方案即宣告破产。
 

15:13 | 评论 (0)

2007年12月24日 #

 

  互联网史上最具影响力的50个人

也许《时代周刊》把“你”评选为了年度风云人物,然而,这个“你”并不是互联网上最有权势或者最有影响力的人。其实,针对互联网人物的评选,美国《PC World》杂志也许更具说服力。虽然在互联网上有很多个人资料、社交网络、网络视频等等,但如果没有那些Craiglists、Myspace和Youtube等网站的创造者,整个互联网的潜力可能淹没在那些垃圾网站中。

那么,谁才是当今互联网上最具影响力的人呢?为了得出这个答案,我们对互联网上的很多人都进行了详细的了解,其中包括有经纪人、博客和网站创建者等。以下是便是我们评选出的“互联网最重要五十人”,下面就让我们一起来看看他们在互联网领域的影响力吧!

1、Google三巨头:施密特、佩奇、布林

当一家公司的股票达到500美金,现金流有330亿,并且成为全球流量最大的搜索引擎,你能不投他们一票吗?佩奇和布林将一家原本在斯坦福大学的网络实验项目发展成为世界的“发电厂”,这还不够惹人关注?在2001年离开Novell并加入Google公司担任CEO的施密特,带领Google占据了全球在线广告市场的大半江山,而且去年更是以16.5亿美元买下视频网站YouTube,几乎成为全球互联网的主宰者,有这样的业绩施密特当然应该排在头名。

2、苹果公司首席执行官:乔布斯

也许你会嫉妒乔布斯的网络之路太过平坦,但毫无疑问,当乔布斯振臂高呼希望开放DRM音乐版权的时候,任何人都不能忽视他的力量。通过各种方法乔布斯让音乐和有版权的视频或TV节目下载逐渐普及,虽然在MacWorle演示的iPhone有可能在未来五个月内仍旧无法上市,但我们有理由相信这款产品有可能像iPod一样成为多媒体网络市场最流行的移动设备。

3、BitTorrent联合创始:Bram Cohen

其实,像Kazaa和电驴这样的P2P系统已经成为过去式,未来属于数学和编程奇才Cohen的杰作BitTorrent。2001年开发的BT软件已经成为下载大型文件的主流工具,它的特点是通过互联网共享资源、硬件和带宽。BT软件的强大功能给Cohen带来了好莱坞的官司,他们要求Cohen从BT网络当中移除所有盗版内容。不过,这些挫折并未减缓BT的发展步伐。据统计,互联网上三分之一的流量来自BT文件交换。最近,BT和一些娱乐巨头联合组建了“BT娱乐网”,并且已经获得了许多正版电影、电视剧、游戏和歌曲的下载授权。

4、Blizzard娱乐公司总裁:Mike Morhaime

如果提及全球在线游戏市场,不知道《魔兽世界》肯定会被人笑话,因为这款游戏已经出现在世界每个角落,全球八百万用户每年为暴雪公司带来了15亿美元的收入,而且每个玩家还在感谢Mike Morhaime带给他们如此美妙的体验。《魔兽世界》在商业开发和游戏开发上几乎做到了完美,例如当前流行的“第二人生”游戏的全部真实商业交易都是基于其这款游戏而成。

5、维基百科创始人:吉米-威尔斯

很多用户都在参与这套在线百科全书的编纂工作,从开始到现在依旧在不断的更新,甚至美国著名的《自然》杂志也在部分文章中引用其资料并注明“基于Wikipedia”。它甚至集中了很多2004年后的法庭资料,但内容越来越广泛丰富的Wikipedia并非没有任何问题,恶意修改和垃圾邮件散布者一直也在困扰着它们,比方说中东国家“卡塔尔”的相关数据就已经被禁止编辑,原因是为了避免宗教或国体问题引起更多争议。同时与Google的合作使得Wikipedia一直都处在数据搜索的输出结果前列,因此它在2007年的成长也是必然的。但是Wikipedia还只是其创始人Wales的开始,他目前正致力于开发一套完全适用于Wikipedia的搜索引擎系统WikiSeek,这才是他引人瞩目的关键。

6、硅谷风险资本家:John Doerr

John Doerr是KPCB风险投资公司的合伙人和Google公司的董事。作为全世界最具传奇色彩的风险投资家之一,从1980年开始,John参与了众多硅谷成功企业的早期投资,包括Google 、SUN、康柏、亚马逊、网景、Intuit、Lotus、赛门铁克、Cypress 、S3、Millennium Pharmaceuticals等。他同时也担任多家上市公司的董事,包括Google 、Intuit、亚马逊、Homestore.com、和Sun。同时他还热衷于参与民主政治和干细胞的研究等。

7、Craigslist创始人:Craig Newmark

他的网站不摆放广告,只向用户收取微不足道的费用,有着一个ORG域名,雇佣了二十三人。尽管有一个谦虚的外表,打扮Craigslist去年十二月的流量却高达1410万,是全世界流量排名五十二的网站。这个网站让许多用户上了瘾,这些人不断刷新网页,以求获得免费的东东。最重要的是,网站几乎摧毁了报纸分类广告市场。一个研究发现,在旧金山海湾地区,这个网站每年几乎夺走了将近6500万美元的报纸分类广告市场。

8、福克斯互动媒体公司总裁:Peter Livinsohn

这家默多克新闻集团旗下的公司也是互联网上最有影响力的实体之一,它控制了十三个知名网站,其中包括第一大社交网站Myspace、引发新闻争议的Foxnews.com。根据统计,去年十二月,这家公司旗下网站资产的访问量已经进入了全世界前十名。未来,他们的排名还会提高,因为福克斯互动媒体公司手里还有二十亿美元的收购资金。

9、Google负责搜索产品和用户体验副总裁:Marissa Mayer

这个Google的产品沙皇主管着公司日益膨胀的产品线,比如Google地图、Google桌面、Google Base。这个Google的“第一夫人”1999年成为Google的第一个女工程师,并帮助开发了Google简洁的用户界面。不过不要猜想她是一个只会工作不会玩耍的女性,根据Google网站介绍,她还经常组织员工电影晚会。

10、Youtube联合创始人:Chad Hurley和Steve Chen

虽然Youtube网站被Google收购,但是两位创始人似乎在未来一段时间将对公司进行重组。最近,他们宣布将向视频创作者支付报酬,此外,Youtube最近还和许多内容出版商签订了授权协议,比如MTV、NBC、华纳唱片等。另外一个创始人卡里姆已经离开公司,在斯坦福大学攻读计算机硕士。

11、美国联邦通信委员会主席:凯尔文?马丁

此人看上去很纯朴,且不高调,不过他或许是整个互联网最有权力的官僚。他在2005年的FCC主席选举中几乎毫无争议的当选,而且没有其前任Michael Powell那样的丑闻,温文尔雅、毫无官僚作风是人们对他的评价,但这并非意味着Kevin J. Martin不会切断你的网络连接。

12、隐私权利组织“电子阵线基金会”主席:Brad Templeton

如果你发现你的资料,或是一些比较隐私的东西都已经共之与众,成为了众多所共享的,也许这个时候你应该找Brad Templeton和他的电子阵线基金会,因为他们可以帮你处理好这些事情。在过去的时间内,他们就辩护文件共享起诉了美国唱片工业协会;另外,他们还因搜索条款,跟美国在线有过一些争执;而近日,Brad Templeton又和他的电子阵线基金会在和解除束缚的博客们闹别扭,因为这些博客们出版了泄露的文件。

13.韩国Cyworld公司首席执行官 :Henry Chon

不要以为Cyworld是韩国的MySpace,事实上应该说MySpace才是美国的Cyworld。在实施互联网实名验证的韩国,25%的人都有Cyworld帐号,我们从Cyworld上看到的不是虚拟的人物,而是实实在在的韩国人。2006年就进入美国市场的Cyworld至今还没有正式发布产品,但是MySpace却一直盯着Henry Chon,随时准备展开激烈的竞争。

14. IAC公司策略与并购事务高级副总裁:Shana Fisher

IAC/InterActive公司首席执行官Barry Diller热衷于扩张其在线事业部,在挥舞过一段时间的金钱大棒之后,Ask.com, Citysearch, Expedia, Match.com, Ticketmaster以及其他一干站点被贴上了IAC标签。但当有人提醒他应该收购某家公司的时候,他会更多听从Shana Fisher的意见,了解何时才是下手的最好时机,是否值得收购。因为她掌握了IAC的“钱包”,也被人们成为最有权利的网络女强人。

15. Skype和KaZaA创始人:Niklas Zennstrom和Janus Friis

从很多事情来看,好像都阻止不了Niklas Zennstrom和Janus Friis前进的脚步。之所以这样说,主要是因为他们的传奇经历不得不让我们对他们刮目相看。从早期的P2P文件共享软件KaZaA;再到之后的VOIP软件Skype,最终以26亿美元出售给了eBay;再到最近或将正式推出的Joost,这是一项P2P视频发布服务,目前还只是测试版本。两人联手创造的奇迹,以及以后将创造的奇迹,都值得我们的期待。

16.博客程序WordPress作者:Matt Mullenweg

Matt Mullenweg在其22岁时开发了WordPress,这是一款博客建站的开源软件,如果你也是个博客,别告诉我你不知道WordPress是指的什么!由于WordPress的成功,Mullenweg在2004年被Cnet纳为旗下,主要是让他来研究WordPress和其他工程项目。不过在2005年,Mullenweg宣布离开Cnet,全心全意开始研究WordPress。就现在看来,WordPress已经更像是一个内容管理系统,因为它包括有丰富的模板、插件、工具、反垃圾程序,这些使得丰富的模板、插件、工具、反垃圾程序。

17.菩提树实验室首席执行官: Philip Rosedale

Philip Rosedale创建了大型多人在线角色扮演游戏(MMORPG)概念,并把该概念成功地带入了网络的虚拟目的地:《第二人生》。但是,我们并不仅仅认为这就是一款游戏,对于“居民”而言,该游戏已经成为一种生活,在这个虚拟的世界里他们可以做任何事情,从结婚到做生意。而很多现实生活中的商务也开始和《第二人生》挂钩。事实上,《第二人生》已经越来越流行,这也将成为一种趋势。

18.Jon Lech Johansen:DeCSS破解程序开发者

其实,他的真实姓名是Jon Lech Johansen,但如果把他称为DVD-Jon,也许大家会更加熟悉。DVD-Jon是一个挪威黑客,他在15岁的时候就破解了传统DVD上防止拷贝的加密系统,从此以后,DVD上的内容就允许复制了。在2002年,DVD-Jon发布了DeCSS解密程序,并因此被人起诉,但很快便以无罪释放。之后,DVD-Jon便声称他已经破解苹果的iTunes加密软件,这时DVD-Jon正在美国的一家软件开发公司任职。不仅如此,最新的HD DVD和蓝光碟片解密系统也被DVD-Jon破解。

19. Yahoo三巨头:杨致远、大卫-菲罗、塞梅尔

Google由于其产品创新精神和以16.5亿美元的巨资收购YouTube而更引人关注,将Yahoo在互联网的光芒给遮住了,但网络巨人Yahoo仍旧在创始人杨致远、大卫?菲罗和CEO塞梅尔的领导下进行着反击。在过去两年Yahoo收购了著名的图片分享站Flickr,以及书签站Del.icio.us等众多web2.0公司和服务。Yahoo不仅在收购方面进行了反击,在产品分布方面也不敢怠慢,推出了像Yahoo Food和Yahoo Pipes这样的新产品。近日,Yahoo又开始实施Panama广告品平台计划。从这些迹象来看,Yahoo从Google手中夺回失地也许只是早晚的事。

20.马云:阿里巴巴董事局主席兼首席执行官

其实,想和中国人做生意,并不一定要买去上海的机票才能够实现。之所以这样说,是因为阿里巴巴帮很多外国商人实现了这个目标。1999年,马云创建了阿里巴巴电子商务公司,提供了最好的B2B平台,是线上商务交往、交易提议和产品提供的最佳场所。在2005年,Yahoo向阿里巴巴投入数十亿美元,之后雅虎中国便纳入了阿里巴巴旗下。

21、 Internet Archive创始人:Brewster Kahle

在1996年之前,Internet Archive都一直处于非盈利状态。但从1996年之后,Internet Archive便开始收集了相当多的数据,而这些数据主要来自于旧书、电影、音乐和收音机节目。之后,便有了提供用日期检索的WayBack Machine网页数据库检索。这之后Internet Archive会定期收录并永久保存全球网站上可以抓取的信息。对于不同的网站,其收录的网页数量和收集周期也不相同,一些大型网站可能每天都会被“备份”一次,每次可能收录数十个以上的网页,而一些小型网站可能每年收录几次,每次只有几个网页。对网站不同时期的历史资料进行研究,是互联网档案馆最大的价值所在。

22、微软首席软件架构师:Ray Ozzie

2006年,Ray Ozzie从比尔.盖茨手中接下软件架构长的职务,众人都对此给予掌声,对Ray Ozzie给予了极大的肯定,同时也承接了微软技术架构与产品监督的重责大任。Ray Ozzie一直被视为是个相当有远见的工程师,他在1984年创立Iris Associates,并相继推出了Lotus Notes和Groove协同软件。现在,Ray Ozzie已经成为了微软的一员,并在工作岗位上发挥了应有的工作激情,并提出了微软如何在这个网络威胁将取代传统台式电脑时代保持强劲的竞争势头。作为基于电脑协作软件的开创人,Ray Ozzie绝对能胜任微软软件架构长的职务。

23、知名博客:Markos Moulitsas Zuniga

Markos Moulitsas Zuniga撰写的博客内容主要跟政治有关,不过他所反映出的正是很多人的心声。他的博客内容涉及到自由主义者的评论,并写到了Nancy Pelosi和Jimmy Carte。Moulitsas甚至还召开了一次政治激进分子的会议。虽说,Moulitsa的认可并未总是得到胜利, 但他的后盾Ned Lamont却相当有影响力。不过,Moulitsas从未表明任何欲望可让他为办公室跑腿。

24、亚马逊首席执行官:Jeff Bezos

Jeff Bezos创建了亚马逊网站,并把它的目标定为打造成最好的线上书店。但Jeff Bezos始终认为出售书籍和CD只是亚马逊网站的第一个行之有效的方案。之后,亚马逊网站便开始出售玩具、恤杉和电动工具。而现在,Jeff Bezos又有了新的想法,那就是让亚马逊网站向网络服务靠近。为开发中的网站提供一个新的框架,其中包括有效计算服务,即让你以每小时10美分来购买服务时间。不过更让我们期待的是他新建的网格计算战略。

25、 PodTech.net副总裁:Robert Scoble

当很多大型商务都开始进入博客时,大家都意识到了草根运动的成功。曾经有一度,微软也开始了这样的做法,这主要是得益于Robert Scoble。在微软的工作期间,Robert Scoble就微软的一些人和事都写入了博客当中,其中还包括微软内部的工作、制造工艺和团队。Robert Scoble的这一做法得到了微软的认可,并宣布把微软博客作为公司与员工交流的正式平台。在2006年,Robert Scoble宣布离开了微软,投身到PodTech.net旗下,在那里,他的视频播客Robert Scoble特色采访小丑得到了大家的热捧。另外,Robert Scoble还成功采访了2008年的总统候选人John Edwards。

26、 Federated Media Publishing董事长:John Battelle

企业家兼记者John Battelle有一个供Webs 1.0, 2.0和3.0伸展拳脚的竞技场;另外,John Battelle还创建了被众人称着Vanity Fair 和People Magazine的互联网时代。而近段时间以来,John Battelle和他的Federated Media Publishing又开始有了新的动作,那就是呈现网上内容的A-list,涉及的网站超过了50家,其中包括43 Folders、Ars Technica、BoingBoing和 TechCrunch。

27、 Creative Commons首席执行官:Lawrence Lessig

由于Lawrence Lessig在互联网上的种种表现,《连线》杂志曾经把他称为“Elvis of Cyberlaw”。现在,Lawrence Lessig不仅是斯坦福大学的教授,同时也是Creative Commons (CC)的创始人兼首席执行官,这是以促进线上工作的免费,但不可废除的许可系统,但它完全是免费的。如果你想和版权持有者一同共享内容,一张CC许可证就能让你实现这一愿望。有了CC许可证就意味着你共享该内容,但前提是不能拿去商用。

28、 eBay首席执行官:梅格-惠特曼

如果要说出eBay没有涉及到的工业领域,我们实在找不出来。如果你想在PS3上市后就能拿到货,或是得到你心仪已久的东西,你都可以访问这个线上拍卖界国王——eBay。自从梅格?惠特曼接手eBay首席执行官以来已经有9个年头了,梅格?惠特曼为eBay出谋划策,同时还打理着网站的最大线上支付系统——PayPal。更让梅格?惠特曼自豪的时,在她的任职期间,成功地收购了VoIP系统——Skype

29.美国俄勒冈州参议员:Ron Wyden

Ron Wyden是美国俄勒冈州的高级参议员,是一个民主党,曾经提出的“互联网反歧视法案2006”,强调网络运营商“不得干涉、阻碍、降级、修改、削弱或者改变任何通过该运营商传输的比特、内容或服务”,也不能“按照有利于自己或任何其他人”即《网络中立法案》。

30、美国知名博客兼出版商:Michael Arrington

Michael Arrington以前是一个企业家兼创业型律师,但由于网络的启动,Michael Arrington也开始自己的博客生涯,由于其博客独具特性,引起了很多人的关注和媒体的报道。特别是TechCrunch属性现在已经横跨了6个域,这更使Arrington成为了一个技术型博客。

31、密码学专家:Bruce Schneier

不管Bruce Schneier是不是把他的主要精力放在Transportation Security Administration最新的安全产品上,或是在研究如何实现12道密码的安全性,但Bruce Schneier都一直在为大家提供有关电脑安全的明晰密码资料。而现在Bruce Schneier正在撰写一个跟国际恐怖主义相关的安全问题,但在家的大多数时间,Bruce Schneier都在进行必要的阅读。

32、 Digg创始人:Kevin Rose

谁在网络上有一个故事,如果想挖掘一下的话,可以找Digg的创始人Kevin Rose。Kevin Rose在2004年创建了Digg.com,Digg的运算法则让用户提交他们喜欢的新闻故事,然后进行投票。由于Digg这一概念被广告互联网用户接受,Digg也得到了广泛的开展,从首先单纯的技术新闻到现在的主流新闻种类。虽说我们并不知道Kevin Rose有没有数百万家财,但Kevin Rose和他的Digg.com确实在互联网史上留下了难以抹出的一笔。

33、Interesting-People.org创始人:David Farber

从上世纪90年代早期开始,David Farber就已经开始运营Interesting-People邮件序列了。但是最开始,这仅仅是为其朋友和同事而建的一个小型的电子邮件序列,之后便广泛用于线上邮件序列。但Interesting-People被众人认可还是它所发起的一些主题,从9/11到Digital Millennium Copyright Act,再到Net中立性,而对于某些有影响力的人,Interesting-People也进行了武断的评论。另外,Farber现在还是Carnegie Mellon大学的计算科学和公共政策的教授。Farber曾经还是Federal Communications Commission的首席技术专家。

34、 PowerLine网站创始人:John Hinderaker、Scott Johnson和Paul MirengoffAuthors,

现在,很多政治候选人都不敢再忽视政治博客的力量了,而PowerLine就是政治博客中的一个。这个政治博客是由三个新保守派的律师所组建的,他们是在出席某次活动时达成的一些同盟。因为那时你们就Killian文件形成了争论同盟,该文件是被Dan Rather引用在《60分钟》新闻广播中,其实这都是凭空捏造的。但在最首先,Rather和CBS并不惧怕PowerLine博客,可到了最后,CBS不得不向PowerLine博客低头,并承认了伪造的事实。

35、ICANN董事,Google副总裁:Vinton G. Cerf

由于他在TCP/IP协议中所扮演的角色,Vinton G. Cerf成为了互联网之父其中的一员。其实,Vinton大部分在协议上的贡献都是在上世纪70年代和80年代早期,那是他还是DARPA的一员,属于国防部的Advanced Research Projects Agency。后来,他便跳到了ICANN。在2005年,Vinton成为了Google的副总裁和首席互联网传道者。Vinton的一生都在提倡Net的中立性,特别是在Senate Judiciary Committee上。另外,他还和NASA的Jet Propulsion Laboratory一起在Interplanetary Internet工作,主要是做空间通讯系统的研究。

36、O'Reilly Media创始人:Tim O'Reilly

O'Reilly不仅发明了Web 2.0这个短语,同时还举办了Web 2.0 Summit会议,该会议引起了极大的关注。这个曾经在美国哈佛大学读书的年轻人,现在已经在计算机领域有相当大的影响力。而他的公司也在不断地壮大,并成功地合并了很多新型媒体博客、播客和线上新闻站点。

37、Fark.com创始人:Drew Curtis

在解剖当今新闻故事的时候,Fark.com的评论员通常都是采用诙谐的手法,其中也有一些比较下流且粗鲁的话语。但正是因为这种诙谐的手法,使得Fark.com所剖析的新闻内容也成为了大家争先报道的新闻。当近日Fark.com在描述这个标题“Anna Nicole Smith的环境已经接近了死亡的边缘”时,路透社和其他国际性的新闻媒体还对此进行了跟踪报道。而Fark.com网站一直都是由一个家伙所掌管,这就是Fark.com的创建者和精明的运营者Drew Curtis。在2007年1月份,Drew Curtis还宣布在SuperDeluxe喜剧视频网站发布了FarkTV。

38、Techmeme发明人:Gabe Rivera

Gabe Rivera创建了功能强大的内容分析运算法则,利用该法则来浏览传统的新闻媒体和博客,就能鉴别出那些新闻是重要的,然后还能把这些重要的新闻组织成一个容易阅读的文件档。而Gabe Rivera的目标是找到下一个大的新闻故事。这就是为什么那些有影响力的博客、制造者和新闻工作者把Gabe Rivera的网站Techmeme作为一个必看的站点。

39、 RSS 2.0发明人:Dave Winer

如果你每天要耗费几个小时来细读播客的话,那么你或许要感谢,或是谴责(看你怎样看待这件事)Dave Winer,因为Dave Winer就是播客发明者其中的一个,同时也是第一批博客。Dave Winer写博客是从1997年开始,叫着Scripting News博客。另外,Scripting News还是SOAP协议的作者,这是操作系统独立网络服务的一个重要的元素。不过,Dave Winer真正为众人所认识还是他专注的RSS——网络内容收集后面的技术。正是因为Dave Winer的影响力,才说服了《纽约时代》也开始使用RSS,而Dave Winer也在对RSS进行修正,以便能支持媒体文件。

40、Mozilla技术副总裁:Mike Schroepfer

在现在进行浏览器战争中,Mozilla的副总裁Mike Schroepfer扮演着一个重要的角色,因为他就是负责火狐浏览器的研究,而他的任务就是打造世界上最好的浏览器。事实上,Mike Schroepfer已经成功了,因为现在火狐浏览器已经得到了大家的广泛认可。这种开源浏览器软件结合了众多的特性,且有了一定的安全保障。其实,火狐浏览器的成功并不是空穴来风,不然的话,微软的IE7也不会采用火狐浏览器的特性——标签浏览。
41、好莱坞博客:Perez Hilton

爱他,或是恨他,这些我们都是有准备的,因为这是一个非常有争议的博客,因为他已经改变了名人新闻的面目。在Hilton受欢迎的网站上可提供很多名人的闲谈和照片,但这些并不足以让Hilton成为互联网史上最重要的50人之一。不过,Hilton卷入的一场和照片代理机构X17的官司,让Hilton有了更多的名气。X17起诉Hilton未经允许就擅自使用了他们的版权照片,不过Hilton声称他所使用的照片都是合法的。这场官司让大家更多地认识了Hilton,同时也让众人意识到了在网上使用数码照片的严重性。

42、Y Combinator创始人:Paul Graham、Trevor Blackwell、Robert Morris和Jessica Livingston

到处撒网,总会有一处会捕到鱼,这就是奉风险投资公司Y Combinator的宗旨,也许这样会浪费很多的资源,但也许也会捧出下一个Google,这也就是Y Combinator为什么到处投资的原因。Y Combinator一般会向一些有潜质的公司注入一定的资金,作为回报,Y Combinator会要求所投资的公司给予2到10%的公司股份。从Y Combinator成立至今,已经向很多公司投入资金,其中包括Reddit、Kiko和Weebly,也许这些名字听起来都相当陌生,但是当我们第一次听到YouTube这个名字时,我们谁又记住它了呢?

43、F-Secure安全专家:Mikko H. Hypponen

F-Secure的安全新闻博客,都是其反病毒研究主管Mikko H. Hypponen进行撰写的。该博客是很多互联网用户常去的地方,因为在这里可以获得很多最新安全威胁的信息。但是,索尼BMG并不买Hypponen的帐,这也导致后来的错误。之前,Hypponen就已经在博客上说索尼BMG音频CD的反盗版软件中隐藏了Rootkit,但索尼BMG不顾Hypponen的警告,未对此有所防范。尽管F-Secure并未把此事当作新闻一样发布出去,但之后Windows安全专家Mark Russinovich便在其博客上公布了Rootkit的发现过程。这一举措促使索尼不得不在以后的日子认真地对待Hypponen的博客。

44、 Slashdot.org创始人:Rob Malda

1997年,Rob Malda创建了Slashdot,这是最原始的对新闻内容进行优先次序进行区分的博客,但这些进行区分的新闻的读者大多数是技术人员。事实上,原始新闻故事仅仅只是一个跳板,让读者跳到注释和评论上。也许你现在更喜欢Digg、Techmeme、Technorati,或是其他的新闻聚合博客,但千万不要忘记Slashdot才是它们真正的鼻祖

45、Gawker Media创始人:Nick Denton

Nick Denton的博客帝国相当有影响力,这主要是因为他的博客内容丰富,有特色,访问者在他的博客逛上几个小时不会感觉到乏味。他的博客按很多内容进行划分,标题类包括New York City,除此之外,还有另外其他的选择,其中有Washington, D.C.、Wonkette、Defame和科技新闻望网站Gizmodo。Denton的博客帝国无疑是一个相当成功的独立博客。

46、W3C主管:Sir Tim Berners-Lee

当你有了一个新的发明,你是否会免费把它发布出去。也许创建一个协会是一个更为行之有效的方法。在Sir Tim Berners-Lee任职于CERN时,这位英国科学家设计了首个网络浏览器,还包括有编辑和语言协议(HTTP)。在1994年,Berners-Lee创建了W3C。而最近他又对Net独立性表示了极大的兴趣。而就像大型金融公司E.F. Hutton也对Berners-Lee相当的尊重,当Berners-Lee在演讲时,很多人都会把他的话牢牢记在心中。

47、播客TwiT制作人:Leo Laporte

TWiT的前身是Tech TV,是Leo Laporte、Patrick Norton和John C. Dvorak几个人合作的一个播客网站,主要播报每周的科技领域的新闻。TechTV最初是叫ZDTV,是1998年创办的一个有线网络电视频道,在2004年,当时已经改名的TechTV宣告解散。2005年1月,现公司总裁Leo Laporte,在他的广播电台网站播放了他与前TechTV20分钟的谈话记录,没想到取得了意想不到的效果:以前TechTV的电视观众疯狂迷恋这段谈话记录,几个月以后,TwiT诞生了。根统计,TwiT每个月有50万的听众,而且这些听众都是软件购买大户,是网上最能消费的一个群体。到目前,TwiT 已经跻身于美国播客网站的前10名。

48、伊拉克之声博客作者:Mohammed和Omar Fadhil

尽管对于伊拉克战争进行报道的博客作者有很多,并都提出了相关的观点,但这些作者的博客普遍未引起很大的关注。但是,Fadhil兄弟的关于伊拉克战争的博客却引起了广泛的关注,他们所提出的一些看法是其他博客作者所不能媲美的。Fadhil兄弟之所以看问题这样透彻,主要是因为他们都是伊拉克人。其实无论你有什么政治倾向,你都会发现Fadhil兄弟的博客对伊拉克战争的报道是多么的到位,通过他们的博客,你对这次战争也会有更深的理解。另外,除了这个例子之外,还没有出现哪个草根英雄可以改变这个世界。

49、Adaptive Path总裁:Jesse James Garrett

Garrett是旧金山用户体验咨询公司Adaptive Path的总裁,并提出了Ajax概念,Ajax可提供与服务器异步通信的能力,一个最简单的应用是无需刷新整个页面而在网页中更新一部分数据。这种技术可为基于网络的应用程序,例如Zoho的应用程序架构和Google Map桌面软件实现快速大打开。其实Ajax早就存在,只不过没人对此定义罢了,直到Garrett的出现,才结束了这个局面。Garrett不仅是Ajax的倡导者,同时也在积极地对此进行创新,并作为一项有效的技术用于很多好的Web 2.0网站和服务中。

50、MySpace名人:Tila Tequila

如果你是歌手/模特/女演员Tila Tequila的朋友,那你将不会有孤独的感觉。其实,MySpace的160万用户都用极为相似的方式来鉴定自己。而Tila Tequila证明了MySpace友谊是可以产生能量、名望和财富的。事实上,Tila Tequila还对“朋友”这个单词进行了重新定义,即以从来没有见面的个体组成的。不管你承不承认Tila Tequila的才能,Tila Tequila都是那样的出色,她甚至能在这个新网络经济时代讲授一节课程。Tila Tequila过去当过模特儿,还签有广告合约,也有自己品牌的时装产品,而她的MySpace页面已经有超过5600万页面浏览,以及173万多条评论。

 

3:08 | 评论 (0)

2007年12月22日 #

 

  内盘/外盘的概念

内盘:以买入价成交的交易,买入成交数量统计加入内盘。
外盘:以卖出价成交的交易。卖出量统计加入外盘。内盘,外盘这两个数据 大体可以用来判断买卖力量的强弱。若外盘数量大于内盘,则表现买方力量较强,若 内盘数量大于外盘则说明卖方力量较强。

通过外盘、内盘数量的大小和比例,投资者通常可能发现主动性的买盘多还是主动性的抛盘多,并在很多时候可以发现庄家动向,是一个较有效的短线指标。

但投资者在使用外盘和内盘时,要注意结合股价在低位、中位和高位的成交情况以及该股的总成交量情况。因为外盘、内盘的数量并不是在所有时间都有效,在许多时候外盘大,股价并不一定上涨;内盘大,股价也并不一定下跌。

庄家可以利用外盘、内盘的数量来进行欺骗。在大量的实践中,我们发现如下情况:

1、股价经过了较长时间的数浪下跌,股价处于较低价位,成交量极度萎缩。此后,成交量温和放量,当日外盘数量增加,大于内盘数量,股价将可能上涨,此种情况较可靠。

2、在股价经过了较长时间的数浪上涨,股价处于较高价位,成交量巨大,并不能再继续增加,当日内盘数量放大,大于外盘数量,股价将可能继续下跌。

3、在股价阴跌过程中,时常会发现外盘大、内盘小,此种情况并不表明股价一定会上涨。因为有些时候庄家用几笔抛单将股价打至较低位置,然后在卖1、卖2挂卖单,并自己买自己的卖单,造成股价暂时横盘或小幅上升。此时的外盘将明显大于内盘,使投资者认为庄家在吃货,而纷纷买入,结果次日股价继续下跌。

4、在股价上涨过程中,时常会发现内盘大、外盘小,此种情况并不表示股价一定会下跌。因为有些时候庄家用几笔买单将股价拉至一个相对的高位,然后在股价小跌后,在买1、买2挂买单,一些者认为股价会下跌,纷纷以叫买价卖出股票,但庄家分步挂单,将抛单通通接走。这种先拉高后低位挂买单的手法,常会显示内盘大、外盘小,达到欺骗投资者的目的,待接足筹码后迅速继续推高股价。

5、股价已上涨了较大的涨幅,如某日外盘大量增加,但股价却不涨,投资者要警惕庄家制造假象,准备出货。

6、当股价已下跌了较大的幅度,如某日内盘大量增加,但股价却不跌,投资者要警惕庄家制造假象,假打压真吃货。
 

1:30 | 评论 (0)

2007年12月21日 #

 

  主力试盘手法揭密

主力试盘手法揭密

  主力吸货完毕之后,并不是马上进入拉升状态。虽然此时提升的心情十分急切,但还要最后一次对盘口进行全面的试验,称作“试盘”。  

  一般主力持有的基本筹码占流通盘的45%-50%,剩余的55%-50%在市场中。在较长的吸货阶段,主力并不能肯定在此期间没有其它的主力介入,通常集中的“非盘”如果在10%-15%以上,就会给主力造成不小的麻烦。在操作过程中这种情况十分常见。经常两个主力几乎在同时介入,持仓比例都差不多,吸货阶段都十分吃力。常常到最后这只股不错,但就是不涨,上下震荡,成交量时大时小。这类股多半是几个主力碰了头,彼此相互制约。如1998年2月两个主力同时看好南京某股票,当时该股只有3000万股的流通盘,双方在吸货之后,都已持仓近千万股,这可进退两难了。由于大主力之间进行“合作”几乎不可能,所以该股上下震荡至今,不能顺利上攻,成了一块“鸡肋”,食之无味,弃之可惜。所以必须“试盘”。  

  试盘的方法一般是主力用几笔大买单,把股价推高,看看市场的反应。主力将大买单放在买二或买三上,推动股价上扬,此时看看有没有人在买一上抢货,如果无人理,就说明盘面较轻,但股性较差;如果有人抢盘,而且盘子较轻,就成功了一半。紧接着主力在拉升到一定的价位时,忽然撤掉下面托盘的买单,股价突然地回落。而后,主力再在卖一上压下一个大卖单,这时股价轻易下挫,这说明无其它主力吃货。在推升过程中,盘中有较大的抛压,这时主力大多先将买盘托至阻力价位之前,然后忽然撤掉托盘买单,使股价下挫。如此往复,高点不断降低,该股的持有者会以为反弹即将结束。突然主力打出一个新高之后,又急转直下,此时比前期高点高,眼看很快要跌回原地,非盘再不敢不减仓了,于是集中的抛单被拆散了。  

  比如:某大户的持股成本在10元左右(与主力的成本相近),共15万股,主力在11元左右开始试盘,连续几日从11元多下触10元,有一天突然破位下行到9.8元,此时大户减磅3万,紧接着又猛地拉起到10.80元,大户认为应该拿回筹码,于是买回1万股。而后股价又拉至11.80元,大户还未来得及高兴,就又跌到10元。大户感到抛压太大,又减磅4万,至此,大户持仓是15-3+1-4=9万的筹码,而且平均成本比过去高多了。这样在11元的抛盘由1 5万变成了零。  

  试盘的种种情况探明了市场中的持仓情况。股性死板没有关系,在大盘弱势中逞强,强势中压盘就能很快地活跃起来。

 

1:25 | 评论 (0)

 

  庄家成本变动浅谈

庄家成本变动浅谈

  庄家的持仓成本在做庄中是最核心的机密。如把它搞清楚了,对实战操作非常有价值。现实中,一些投资者常常认为庄家持仓成本是非变数的东西。其实,这种看法的前提条件是,除底部建仓与高位派发外,庄家在整个股价拉升过程中不能参与任何交易(对敲也得交纳手续费与印花税)。实际上,这种可能性是不存在的。所以,从某种意义上说,庄家的持仓成本也是个完全动态的概念。有些个股所谓庄家"被套"纯属无稽之谈。一般做过生意的都明白,对同样一件商品,如果能使进货成本远低於其它竞争者,就能确保在买卖中立於不败之地。实战中,许多庄家也深谙这个道理---在吸足预定做盘筹码後,为了使自己掌握在今後市场变化中的主动权,首先想到的可能不是如何让股价"一步登天",而是在底部或上升途中怎么高抛低吸来有效摊低持仓成本。这样,即使股价跌穿了建仓时的价位,也不致於亏损。以一只5000万流通盘的股票为例,主力建仓成本在10元附近,共买3000万筹码,动用资金3个亿。设想主力若用1000万筹码在10元至13元间来回花一年时间做5次差价,那么共获利1.5个亿。很显然,一年後主力的平均持仓成本将降低至5元附近。如果哪一天或大盘或个股的原因,这只股票跌到了6元钱,你能说庄家挨"套"了?

  再讲讲暴炒庄股的"零成本"。一只强庄股,若从5元涨到了30元(上涨幅度600%),那么只要庄家在高位抛售其中1/6的筹码来套现,就能把底部建仓的成本全部收回。换句话说,庄家在高位赚到的是剩馀的5/6"零成本"的筹码,若上市公司能搞个大比例送股什么的,那么除权後要拉抬股价则完全可通过手中这些"零成本"筹码的隐蔽对敲来完成。

 

如何估计庄家成本
浏览字号:【 】【打印】【关闭窗口
发表日期:2005-03-18    人气:    编辑:锋华正茂
1、主力为何要洗盘?是否不愿多拿筹码? 

  答:一般主力在把股价拉升了一段空间后,由于有大量投机跟风资金介入,股票的浮筹会大幅度提高,所以这时候需要进行震仓洗盘,从而甩掉低成本跟风者减轻上升压力;并且通过新老跟风盘的换手使得除庄家自身以外的市场平均持筹成本不断抬高,以利于后期拉升筹码的稳固性。洗盘与主力是否愿意多拿筹码无关,一般与主力对大势的信心有关。 

  2、请问三线系统是否适用周和月K线图﹖ 

  答:(1)周线是我们除了日线看得最多的K线,月线少些,主要是周期变长,比如周线是以一周画一根K线。这样对于大形态、大趋势能看得更清。很多人看K线喜欢看局部,犯坐井观天的错误,用周线可以避免。我们要求几乎任何股票都要看到上市那一天!至少心里要有数该股几年来所有的走势,彻底分清是高位还是低位。 

  3、如何估计庄家主力成本,如何发现它是何时介入的﹖ 

  答:如何估计庄家主力成本——这说来话长,简单讲,最主要的是要对任何有庄的股都能清楚划分庄家4阶段!找到4阶段中庄家的建仓区域即可。这就要研究庄家是如何运作股票的。只有清楚每个阶段的特点,才能进行比较准确的划分。 

  4、(1)西藏明珠(600873)在2000年初是“价坑”形态,但我发现它在2001年2月、10月、2002年2月均有类似的“坑”他们也是价坑吗?一个价坑的形成它需要哪些条件?(2)常山股份(000158)在2002年6月份是价坑吗?为什么?它与当初的西藏明珠(600873)有何区别? 

  答:(1)价坑属于一种形态,是价格波动曲线形成的类似“坑”的形状。与圆弧的区别在于圆弧半径是很大的,而坑的半径较小,况且坑也不一定是圆的,也有方的。因此坑是一种快速下跌后的快速回复,这在操作中会提高主力成本。来看看湖南海利(600731),1999年12月17日至2000年1月10日的形态,我们无法归结为圆弧形,它就是一个“价坑”。 

  一个坑的含义实际上是一个空头陷阱后的逼空行情,通常产生于大形态向上突破前期高位的时候。2001年2月、10月、2002年2月的西藏金珠不是。 真正的“坑”是在建完仓后的最强劲的洗盘时候,而已经在出货阶段那么就不存在“价坑”问题了。识别它,这需要对庄家运作的阶段极为熟悉,这是基本功问题。 

  (2)常山股份(000158)在今年6月份是一种表面形式的坑,7月份是圆弧,但是常山股份这种坑是没有用的,它与当初2000年初的西藏明珠的区别是很明显的!西藏明珠当时是创了前期历史高位,是建完仓进入拉升之前的空头陷阱,常山股份上方却全部是套牢盘。

http://www.gupiao8.com/info/View-Info-144.html

 

庄家一些传统的骗术

  庄家总要在低位时骗投资者出局,高位时骗你追高。随股市的发展,庄家的骗术也不断得到淋漓尽致的发挥。下面就是股市中庄家较常见的一些传统的骗术:

  骗术一:尾市拉高,真出假进。庄家利用收市前15分钟用大单放量拉高,做高收盘价,把K线图画好,以骗散户以为庄家拉高,大胆跟进做短差,第二天低开低走的走势必然让人后悔不已。这种操盘手法证明庄家实力较弱,手上资金不充足。

  骗术二:高位盘整放巨量突破。这种突破十有八九是假突破,巨量一般以超过该股流通盘的10%为标准。为什么会放巨量?巨量是从那里来的?股价在高位盘整突破上攻时,很明显巨量是急于离场的庄家和急于进场的跟风者共同成交的,庄家利用散户熟识的放量上攻骗散户介入。庄家高位出逃必须有人高位接货,如果庄家看好后市的话,他完全无必要放巨量,小幅放量就可以了,因此唯一的可能是庄家减磅出逃。所以在看盘时,一定要先看成交量。

  骗术三:盘口委托单骗术。在三个买卖盘口上,当三个委买单都是大笔的买单,而三个委卖单都是小笔的卖单,一般人都会以为庄家吸货,反之则认为庄家出货,如果一切都那么清楚明白,庄家还能骗钱吗?庄家出货和吸货的手法和我们的想法正好相反,投资者可仔细观察。

  骗术四:除过权的前期牛股放巨量上攻。这种情况大都是庄家出逃。高位时,庄家难以明目张胆出逃,除了权,股票的绝对价格低,散户的警惕性就降低了。庄家放量小幅拉高,便会有大量跟风盘跟进,这时庄家就可悄然出逃了,庄家不拉高很多,进场的没什么空间离场,未进场的觉得升幅不大可大胆跟进。庄家就是这样在散户的帮助下,把股票变成了利润。

http://www.denguang.com/html/book/lzjj/0015.htm

http://www.hyfww.com/help/help10.asp

 

0:49 | 评论 (0)

 

  庄家洗盘技巧揭秘

捕捉“洗盘结束点”

  能发现股价的底部并及时跟进者,无疑是股市赢家,但这种机会对多数人来说是可遇而不可求的,从股价在底部时成交量往往极度萎缩的状况也可以看出,能成功抄到底部的人毕竟是少数幸运儿。但投资者可在主力洗盘结束之际再跟进,这样即使错过了第一波行情,却能抓住庄股的第二春。大部分庄股在拉升中途均有洗盘震仓行为,主力一旦清洗完毕,往往便展开主升行情,这时抄不到“底”的投资者亦可抄到一个半山腰。在洗盘结束点寻找买点的操作要点为:
  1、观察近期正处拉升阶段、离底部已有一定升幅但尚未出现放量急拉的个股,亦即是已有主力介入、但尚未展开主升浪的个股,将其列为重点关注名单。
  2、关注这些个股何时出现明显的洗盘震仓动作,未出现前可静观其变。
  3、一旦洗盘结束后向上突破,投资者可待股价突破洗盘前的高点时介入。

  可见,这一策略的关键在于能正确判断主力是在洗盘而不是出货。主力的洗盘手法千变万化、层出不穷,花样不断翻新,投资者可以把握这一点,就不会被浮云迷惑了双眼:可以洗盘总是刻意制造恐怖气氛,主力往往采取凶悍砸盘、令股票放量下挫等恶劣行径。以下是常见的几种洗盘方式:

  1、阴雨连绵。
  指日线图上收一连串阴线,但股价并未大幅下调,每天收盘价都比较接近,往往构筑一个小整理平台,这通常是牛股在中场休息,主力在卖力洗盘子。如山推股份今年初从4.5元附近启动,经过一轮拉升,6月份在其股价翻番的位置附近收出成串的阴线,分别是6月2日至9日,6月13日至16日,但股价并未下跌,主力洗盘意图暴露无遗,6月20日放量突破整理区,此时即为很好的买点,随后该股很快展开新一轮行情。类似个股如今年2月15-18日的新华制药(0756)。
  2、长阴砸盘。
  有些个股在平缓的上升通道上突然拉出难看的长阴线,跌破通道下轨,此种走势多为主力的洗盘震仓行为,如泰山石油(0554)年初从4元附近起步,在平缓的上升通道里爬行数个月,6月5日收一长阴线,但股价很快企稳回升,再如今年6月上市的金鹰股份(600232),上市后一直运行在平缓的上升通道,11月7日至9日突然收三根带量阴线,10日一根长阳线收复失地,洗盘之后走势更加轻盈。
  3、地面塌方。
  有些个股在上升通道上突然放量下跌,但很快便收复失地,犹如地面出现塌方,这便是俗称的“空头陷阱”,主力一旦大肆挖井,表明其已迫不及待,准备大干快上了。如福地科技(0828)自99年7月开始构筑上升通道,12月15日突然拉出数根长阴,随后便迅速收复失地,日线图上挖出一个井,如投资者在井的右边介入,很容易捉到最甜的主升段。9月份之后的吉林碳素(0928)日线图便呈一个井,投资者不妨积极关注。

 

庄家洗盘技巧揭秘


新华网  (2001.01.16 14:51:11)

  新华网1月16日电  洗盘是主力折磨大户、驱散散户最重要的手段,想在股海中胜出,首先就要挺过主力洗盘关。因此,对主力的洗盘技巧加以研究,并找到相应的对策是十分必要的。笔者认为,目前庄家的洗盘技巧主要有以下几种,现把自己的研究成果与各位股友共享。

    (一)黑云压城城必摧,连续长阴摧城拔寨

  现在市场中的庄家普遍采用期货市场的逼空手法,置之死地而后生,连续大阴线或跌停让多方毫无还手之力。庄家洗盘时,盘面表现出股价剧烈震荡,不断有巨大手笔(高达几十万手)的抛单使股价跳水而下,一般股民是很难经受住此种折磨的。因为盘口观察有明显的出货动作,技术指标、图形均显著走坏,再加上不知其题材或底细,当然难逃被洗出的命运。无论是在较平缓的走势中突然向下突破,还是在一定的高位做出高台跳水的举动,都极具杀伤力。

  散户对策:采用这种洗盘方法的庄家实力都很强劲,这种大手笔的震仓洗盘需动用较大资金,成本较高,多是长线庄家所为。因为题材大,需要更高程度的控筹比例,往往需要长时间运作。因此,只要散户投资者能确认这段暴风骤雨式的巨幅震荡是刻意的洗盘行为,在被洗出局后,要盯住其后市的演变,随时准备跟进。

  (二)屋漏偏遭连夜雨,绵绵阴跌摧人心

  这是最令散户投资者难以忍受的洗盘方法,股价经过放量大涨后随大盘的回调而下跌,成交量呈明显缩减,走势比大盘弱,下跌途中很难出现反弹。这使得前期跟进的投资者无逢高获利了结的机会,买进较多筹码的大户或跟庄机构更是无法出逃。从而造成对该投票失去信心,要么在进一步的阴跌中杀跌出逃,要么在日后真涨起来时尽早开溜,而且抛了之后就不敢再轻易回来,即使将来看着涨势想追,也只是有“心”无“胆”!

  散户对策:庄家采取这种欲擒故纵的手法最终的目的还是为了更好的炒高股价,这就决定了庄家只能抛出少量筹码来刻意打低股价,所以散户只要发现庄家在底部有明显的建仓过程,而在顶部却没有明显放量,接近庄家成本区间时分批介入,后市必有炒高机会。

  (三)树欲静而风不止,高位横盘磨散户

  庄家将股价拉升到一定高度后,让股价在一定区间内长时间横盘,将散户的持股信心磨得消失殆尽。高价区的横盘证明庄家已基本达到充分控盘的持仓量,又可以避免有大资金逢低吸筹发生抢庄。横盘之后是涨是跌,主动权完全在庄家手里,也就是庄家掌握着心理上的优势,处于劣势的中小投资者则必然在横盘的过程中凭感觉去做停或走的选择,而且选择的往往正是庄家所希望的结果。

  散户对策:横盘式的洗盘存在着较大的机会,因为从中体现出庄家有炒作题材的信心和资金充足的信心。横盘期间如果出现大盘的深幅下挫而股价依然坚挺,则后市看涨的意味就更强烈,横盘时间越长,受到大盘冲击的力度越大,后市上涨的动力就越充足。

  庄家之所以屡屡得手,并不是因为他运用的操盘技巧如何高明。毕竟每个散户的每一次买卖决定都是自觉自愿的,都经过了认真考虑并自以为正确。他们之所以每每落入庄家的圈套,根本的原因是由于人性自身的弱点,只有走出自我并战胜自我,才能“洗出一片新天地”!(

庄家洗盘手法(一)

    庄家洗盘的手法多种多样,其中盘中的剧烈震荡是大牛股最为常用的手法,因为通过盘中的剧烈震荡来洗盘,周期短,效果好。我们去看看许多翻了倍的大牛股的走势就会发现,在股价温和上升了一段时间后,盘中会出现突然的急挫,同时伴随着成交量的急剧放大,从分时走势图上看形态差得很,一些热衷于短线操作的投资者往往会获利出局,而当时盘中的日K线也是放量的长黑,部分中线筹码也容易受到欺骗误以为行情逆转而提前退出。事实上到收盘一看,只不过是一根长长的下影线,股票运行的大趋势并未受丝毫的影响,而且次日往往还高开,让昨日在下跌时卖掉的投资者后悔莫及,造成再度追高买入,市场成本因而不断提高,形成助涨的动力。下面我们结合近期的大牛股阿城钢铁来分析盘中剧烈震荡洗盘的特征和对策。 
阿城钢铁从98年8月18日开始在4.5元附近走出了典型的低位横盘的走势,这种横盘维持了将近四个月,期间的波动很小,与大盘基本上不发生关系,到12月8日和9日那两天,这种横盘的走势得到了根本的改观,当时的5日、10日、30日、60日均线形成了漂亮的多头排列,只有120日均线还有点阻力,洗盘就在120日均线上方开始了。该股在12月15日和16日连续两天走出了长下影的小阴线,当时给人的感觉是不能有效站稳于120日均线,同时连跌三天的日K线形态也糟透了,因此不少在原来低位平台买入者都在这两根下影线里被洗出去了,挣的不过10%不到,事后我们再看,那两根下影线都未刺破120日线,大的日K线形态仍然保持着较好的多头排列,如果被洗出局还是心态和基本功不好所致。类似的情况该股又在99年1月5日和1月18日重演,其中1月18日那次最为惊心动魄,日成交1400万股,当日换手率近30%,这时主力虽然部分出货,但其整体走势仍然相当好,如此大的行情有其延续性,本质的问题是盘子不大,出货空间要求高,对于散户而言,主力开始出货并不可怕,只要他手中的筹码仍足以维持形态,我们就可以放心持有。 
从上面的情形我们可以得出如下结论:首先,一只从低位升起的股票在刚涨到上方的60日或129日均线时容易出现调整,因为大家都在看他能否顺利突破来作为是否跟进的判据,所以庄家在拉到这时候就会让股价走势显得比较暧昧,同时类似上面阿刚一样,在120日均线上方连续下跌,通过盘中的剧烈震荡来洗盘,通常是开盘后就下跌,而在尾市拉高,让当日卖出者悉数踏空,所以对于刚从底部升起涨幅还不大的个股如果盘中大幅向下震荡,我们还是持股观望为宜,不要急匆匆地卖出,相反我们可趁回调之机加码买入。其次,在已有较大涨幅并涨至前期某一成交密集区的时候时发生调整,应密切关注,随时获利了结。例如阿钢涨到接近7元时,恰是前期的次高位平台,此时发生调整在情理之中,所以该股在1月5、6、7三日连续调整,其中7日的下影线还刺到了10日均线, 

此时稳妥的投资者退出观望是无可厚非的,因为此时距离低位平台涨幅已有近五成,获利了结也未尝不可。但如果我们观察该股的日K线走势就会发现,没有任何理由导致我们作卖出决定,我们只要不为盘中的细节所动,就会安然度过调整,短线高手甚至可以择盘中的低点介入,通常对于这类超强势股低点发生在10日均线处。第三,当股价涨至历史高位时,调整的强度会加大。例如阿钢在1月18和19日的调整,成交量很大,盘中下跌幅度也较深,估计大多数散户投资者都在那两天出局了。但从随后几日的走势看,该股升势未尽,很可能还会出现无量上涨的局面。我们对于这种有能力涨破历史高位的股票也须加以密切关注,有时候主力并不单纯为了赚钱,同时也有改变某股市场形象的因素在内,那样的话对于散户而言正是好机会。一旦一只股票经过连续的上扬突破了历史高位并在历史高位上方无量徘徊的话,我们可以先退出观望,如果在高位并无庄家出货的迹象,则仍然可以寻找盘中的低点介入,寄希望于它重拾升势,再展雄风。当然对于稳健的投资者而言,则还是选择刚从低位升起的股票较好。 

   庄家洗盘手法(二)

  -----上升初期拉长阴

    有一种很奇特的洗盘方式是上升初期拉长阴,它的主要特征是前期庄家介入迹象明显,并且已经或即将开始拉升,但于拉升初期突然出现长阴,使短线走势相当难看,然后在次日有拉回原有的上升通道中。这是一种比较凌厉的洗盘方式,周期短,效果好,对普通散户杀伤力大,但碰上高手要吃亏。下面我们结合实例来分析。 

600796钱江生化在98年3月至10月间维持着大的上升三角形整理,到10月9日时,均线系统已走好,股价也处于三角形顶边,成交量也已经收缩到很小,正是发动大行情的好时机,然而次日该股却以一根带量的长阴跌破所有均线,这使许多持股者的信心发生了动摇,当日出逃者不少。有趣的是,该股次日开盘即封涨停,并且始终维持到收市,前一日卖出者回补都没机会,之后强劲上扬,从十七八元涨到二十八元。从这个例子中我们可以总结出以下经验: 
一、一只股票如果上涨前的准备工作较充分,那么发动行情是不可避免的,我们不要担心他放弃炒作,除非大势极差。因此对于盘中出现的种种古怪现象,要以平常心待之,对好股票要有中线持仓的心理。 
二、即使被洗出局,虽然次日或许没机会跟进(象钱江生化这样次日封涨停的毕竟不多,大部分还是次日高开高走),再后一个交易日也可积极跟进,对于短线炒手而言,发现这种异动恰好是一个好的进场提示。 
三、在大趋势向好的情况下,某一两个交易日中如出现大的卖单压制股价而实际上并不成交的情况要予以重视,这往往是洗盘,所以有时间看盘是好事,但更要看日线的大趋势,不要被盘中的小动作迷惑。 
上面说到的这种洗盘形式并不十分常见,因为被识破的可能较大,同时对于从不看盘的散户也起不到作用,另外这种洗盘也有可能变态为开盘后大跌,尾市迅速打高,虽然形态上有所不同,本质都一样,大家只能在实际运用中自己去琢磨提高。 

   庄家洗盘手法(三)

  -----无量跌破平台

     凡是心存高远的庄家在剧烈拉升之前都有较为凶狠的洗盘,无量跌破平台就是常见的洗盘方式之一,这里面又分为两种形式,一是跌破低位平台,有再下一城之意,一是跌破上升中途的无量平台,破坏原有的上升趋势,使人误以为行情反转。下面我们就结合实例来分析这两种行为的特征。 

第一种形式的主要特征是庄家前期通过长期横盘的办法吸筹,图形上构筑了一个筹码密集的低位平台,吸筹的末期各种均线纠结在一起,未来走势非常暧昧,此时一些有心的投资者可能会试探性买入,然而在股价即将大涨之前却无量跌破原有平台,从图形上看往往形成较为明显的空头排列,让试探性介入的散户误以为趋势变坏而止损出局,原来一些长期在平台坚守的散户也以为股价将下一台阶而匆忙逃命,这样一来正中庄家下怀,于是从更低的位置一路盘升,最后突破平台之后向上狂涨,九八年的吉诺尔神话就是这么演绎的。该股从97年12月到98年5月始终在低位横盘,由于盘子太小,庄家吸筹十分耐心,98年5月时该股的形态已到了选择突破方向的时候,果然98年6月风云突变,股价迅速下一台阶由原来的8元左右跌至7元附近,当时的均线系统非常难看,大多数人恐怕都认为这股完了,直到后来该股在低位走了一波慢牛的时候,仍然没有明显特征表明它将超越平台走好,然而98年9月初,该股轻松越过前期平台,开始了连拉涨停的神奇表演,让大家瞠目结舌。它之所以能走出如此好的走势,主要归功于前期平台吸筹较多,后来的洗盘也较充分,筹码都在庄家手里,涨起来当然势如破竹了。不过在这里我还要提醒大家,并非所有无量跌破低位平台的股票就一定是庄家洗盘,确有某些股票是要重心下移,这与要涨的股票的主要区别在于平台时的走势是呈吸筹状还是呈派发状,这两种状况的区分这里就不赘述了。 

第二种形式的主要特征是庄家吸筹已经完成,刚开始拉升不久涨幅并不太大时股价开始平台整理,整理的时间长则几月短则数天,总的来说平台的成交并不活跃,但到整理末期30日线上来了,60日线也上来了,形势就变得较为微妙,此时如果突然跌破平台并破掉一些中长期均线的话,十之八九的人都会落袋为安,反正挣到钱了,千万别又吐出去了。事实上,经常是过几天股价又奇迹般地涨了上去,并且再次上涨的幅度较前一次更大,令胆小者后悔莫及。这种洗盘的杀伤力也很大,由于前期介入的已经获利,所以更容易出局,庄家的目的主要还是想提高市场的平均成本,再起一波时阻力就小多了。大江股份在98年3月和8月就上演过两次类似的故事。该股从前期的7元低位平台涨到8元之后,开始了两个多月的平台整理,整理的过程中成交量不断萎缩,最后甚至到了几万股一天,这就是庄家并未出货的明证,不过股价已破30日线,不少人心里还是有点紧张,差不多就行了,挣点是点吧,意志不坚定的人还是走了一些。后来6-8月那次则更吓人,不但平台破位下行,连120日线都跌破了,跑掉的散户应不在少数,没想到后面还有行情,股价再现升势,创出三年来的新高,这就提醒我们对于缩量平台整理的股票要加以密切关注,只要整理末期不放量下跌就可坚定持股信心或适时介入,至于较高位放量滞涨的就应另当别论,还是退出观望为宜了。

  庄家洗盘手法(四)

  -----阻力位无功而返

    
    庄家洗盘行为中有一种欺骗性很大,就是阻力位无功而返。所谓阻力位就是指前期某一价位上成交量较大,散户套牢盘较多,庄家在股价刚脱离成本区首次上涨到该价位时,经常做出实力不够的样子,要么做个“射击之星”,要么搞成“三只乌鸦”等等,从形态上看行情宣告结束,事实上行情也的确掉头向下,跌幅还挺深,持续时间也较长,因此被洗出去的人相当多。如果是短线客,走了也无所谓,可以回头再拿回来,但要是中长线投资者被洗出去就冤大了。下面我们仔细分析这种形态的特征和成因以及对应的操作策略。 

阻力位无功而返是否能界定为洗盘,有两个因素需要考虑,一是涨到这阻力位之前是否有庄家吸筹的迹象,譬如长期的低位横盘或低位放量等,另一个就是冲击阻力位时放量的程度。如果前期确有庄家吸筹的迹象,而冲击阻力位时成交量并未明显大于当初形成阻力位时的成交量行情就反转,洗盘的可能性就很大,相反在阻力位放量滞涨而反转,就可能行情的确要变坏了。最近有两只股票的走势就很说明问题,一是0529粤美雅,在8-9元强阻力区间放量,结果掉下来了,这时候宁愿相信是反转而不是洗盘,因为要洗盘的话何必放那么大的量呢,单纯把K线形态做坏就够了,所以有问题。而600722沧州化工前期在10-11元之间小幅放量,结果也掉下来了,我们就可以认为是洗盘,原因就是该股在大势不好的情况下始终逆势走强,形成典型的慢牛走势,说明确有庄家活动其中,而遭遇阻力时成交量并不大,掉头的过程中成交量萎缩较为严重,不象庄家出货。从上面的分析,我们得出作为洗盘的阻力位无功而返的第一个特征就是:确有庄家入驻,冲击阻力位时放量不超过前期成交密集区。然而仅仅如此,还不能完全肯定,另一个必要条件是下跌过程中应大幅缩量,而且股价不能创出新低。如果一只股票在冲击阻力位未果后走出放量下跌或无量创出新低的走势,我们就应修改原来的看法,很可能的确有什么变故使得庄家放弃炒作而出逃,或者庄家自己也被套住了,这种情况与庄家主动的洗盘行为有本质区别。作为主动的洗盘,庄家的用意有两个,一是让少量短线获利盘主动获利了结,省得老拿着不放将来成为不可预计的杀盘力量(宁可让另一批短线高手介入,毕竟他们成本高一点,可以保我一程),另一个用意是打击中长线持股者的信心,“你们盼了那么久等来的行情到头来不过如此,你们还是死了这条心吧!”,如此也有一些意志不坚定者在黎明前死亡。而作为庄家被动出逃或被套的情况,将来即使有行情,也是自救反弹,高度上大打折扣,持续时间也相对较短,对跟风者的操作水平要求就更高了,因此还是以不参与或少量参与为宜。 

最后还是谈谈最关键的,就是操作策略问题。我的建议是,不论什么股票,只要涨到较大阻力位,不管是次低位还是次高位,都应先退出观望(包括中长线投资者),想买的也应推迟,耐心等待好的买点出现。象以前的天大天财和深华发那种连拉数个涨停的情况属于可遇不可求,我们决不要天真地以为一只股票会一涨到底,中间有曲折是正常的,所以一到阻力位就应退出,不管他准备平台整理还是掉头向下,完全可以在趋势明朗后再度介入,当然如果是平台再起可能会导致再度买入时价位偏高,但如果是向下洗盘就可以在很低的价格买到,那就愉快得很了。更主要的是,我们退出观望就回避了可能出现的风险,在自己对股票未来走势判断不十分肯定的时候,观望是最好的办法,千万别去赌一个不认识的高三生一定能考上大学,而应在他上大一的时候把宝压上去赌他能毕业。股市里有的股票叫“关前蓄势”,我想大家现在知道该怎么对待它们了,最好的办法就是拿着钱在它眼前晃悠,等它蓄好了再推它一把,如果傻呼呼地去帮它蓄,没准就把自己给“蓄”进去了。 
庄家洗盘手法(五)

  -----高位无量横盘

     高位无量横盘(窄幅振荡)是比较典型的上升中继形态之一,其走势与上升三角形有点类似,不同的是上升三角形态中股价是在高位呈现高点不变、低点逐步抬高的收敛形态,而高位无量横盘则表现为高位的窄幅箱型振荡,其高点和低点基本一致。因为此时股价已远离了庄家的成本,庄家随时可以采取放量下跌的办法出货(当然此时出货也并非庄家的全部),所以其未来走向显得暧昧不清,大多数人都比较警惕这种情况,并且不把这种股票作为介入的首选目标,但偏偏有的时候这种股票经过几个月的横盘之后又开始涨个没完没了,完全不理会市场上其它股票的走势,俨然一副天马行空的样子,这就令许多踏空者后悔莫及,同时许多跃跃欲试者却总是下不了决心介入,这类股票的存在已成为当今市场一道奇异的风景,譬如康达尔、合金股份等,几乎就在重演跨父追日的故事。下面我们用灯塔油漆这个例子来对这种股票的走势进行分析。 

首先我们要确定一下这里所谓“高位”的含义,就是指股价处于或接近历史最高位。我们一起来看看0695灯塔油漆98年6月开始的走势,当时该股经过5个多月的三波上扬之后,从最低5.07元涨到13.89元,并创出上市一年多来的新高,其后于6月1日见顶回落,当时的回落在大多数人的眼中恐怕已成了行情结束的象征,毕竟股价已经翻番还有余,颇有高处不胜寒之感,何况大盘在此同时开始展开深幅回调,谨慎的投资者最先想到的还是落袋为安。但谁也没想到后来该股在大盘跌势不止时却开始了长达三个月的横盘,呈现出以12.8元为轴线、很规范的箱型振荡,并且横盘过程中的日成交量与前期4、5月份拉升时相比萎缩了好几倍,这就基本符合了我们所说的高位无量横盘的特征。当然有的股票横盘过程中波动幅度要小一些,基本上是一系列上下影较长的小阴小阳,10日线几乎是一根水平线,5日线的波动也很小,往往到最后30日线也上来了,三根均线交织在一起,谁也不知到这将是一个多头排列还是一个空头排列的起点。形成这种走势的原因大致有如下几种:最常见的是庄家是长庄,志向高远,但尚未达到目标时大盘跌势不止,只好保持横盘徐徐图之;有的是由于庄家自身资金周转的需要,暂时维持着形态别太坏,以后再来;有的是在历史高位上套牢盘太多,需要慢慢消化;有的则是前期拉得过急,获利变现压力太大等等,当然这些原因很可能纠缠在一起,但核心目的无非还是提高市场的平均成本,以利再战。我们再回头看看灯塔油漆从9月初开始的表现。该股在9月3日一举突破前期箱顶后一路攀升,又适逢大势回暖,走出了真正牛股的风范,最高摸至22.99元,把原来的历史高位远远地抛在脚下,如果从5.07元起步算起,累计涨幅高达百分之三百多,这是足以让短线高手也惊叹的。 

下面我们来谈对策。常规说来,手中持有的股票一旦涨到某一高位开始滞涨就应该先退出观望,参与高位盘整的风险远大于参与低位盘整。就拿灯塔油漆来说,如果在较低位置介入,当它涨到十二三元之后不再涨时应先获利了结,因为一开始我们并不能完全排除庄家高位横盘徐徐出货或者从此逐波下跌的可能,只有经过一段时间的观察,发现高位横盘时成交量萎缩严重,而且往往是上涨有量下跌无量,到最后能够打破平衡再度向上时,我们才能真正确定新的行情又来了。不过有的时候庄家故意往上涨一两天,随后急速下跌,直到跌破箱底仍不回头,那就相当危险,说明前一两天的上涨纯属虚晃一枪,大家还是要小心对待,最好事先设好止损位。比较稳妥的办法是向上突破回敲箱顶确认突破有效后再介入,当然有的股票会象灯塔油漆一样根本不回敲,我们也可在它持续上扬的中途介入,宁可少挣10%,也不要冒被庄家骗入的风险。

http://www.goomj.com/LMP/lmp09.htm

 

0:35 | 评论 (0)

 

  神秘操盘手爆料庄家手法

神秘操盘手爆料庄家手法

发表日期:2004年11月16日        已经有2461位读者读过此文

神秘操盘手爆料庄家手法

2002年04月22日09:48:39  罗海涛


 

  近期,股市奇怪的现象不断出现,深康佳和厦新电子两只股票在年报亏损公布后,不跌反涨,而四川德阳的金路集团在公布公司向高科技进军消息后,股价一路下滑,庄家出货的迹象明显。

  在股市游戏中,散户与机构相比总是处于劣势。机构如庞然大物,动辄调动上亿的资金,以严密的系统运转体制为后盾,对上市公司的消息总是先知先觉,对散户的人性弱点有清醒的认识。近日记者采访了成都的一位机构操盘手,在保证不透露其真实姓名的条件下,他向记者透露了机构操作股票的思路。记者:机构选股的第一要点是什么?

  操盘手:对上市公司进行调研。主要包括,一是对公司所处的行业地位、成长性、产品的市场潜力和财务状况;二是公司的经营能力和管理水平;三是股权是集中还是分散,对上市公司前100名股东进行分析;四是对公司的送股、股权转让、收购兼并等“题材”进行挖掘。

  记者:机构选股最看重什么?

  操盘手:最看重题材,其次是流通盘和股价。一般着重选择高比例送股和收购兼并等具有市场号召力题材的股票。总之,题材是为了炒作,流通盘是为了控制股价走势。然后会制定周密的操作计划和实施方案。何时吸货、洗盘、拉升和出货,包括何时试盘,每天做开盘价和收盘价,做阳线和阴线等做多做空的诱导信号。在各阶段配合上市公司的消息。在资金方面合理调度安排,一般来说,现有资金30%是用来护盘拉抬和其他突发用途的,70%为股票占用资金。并且在想做某只股票前,一般会投一部分资金进而成为该公司的股东,这样才有机会和公司进行交流,以期得到公司的配合。总之,“多算胜,少算不胜”。

  记者:那是如何操作的?

  操盘手:在吸货阶段,技术图形忽阴忽阳,让跟风者和持有者琢磨不透,同时利空很多,击垮持股者的信心。在拉升前试盘,经常在上档卖方挂出大笔卖单,一方面是观察场外跟风盘的反应,一方面也是测试盘中浮筹的意向或上档的压力。在拉升阶段,常采用流动操作手法,即对敲、倒仓等手法,将股价推高,营造跟庄赚钱的效应,培养一批跟风盘,为未来的顺利出货埋下伏笔。在上升段和末升段,常常利用投资者普遍采用的技术分析,做出符合经典理论的做多技术图形,让跟风盘赚钱,并让他们深信自己所用的技术分析是正确的,为今后反向操作作准备。在出货阶段,利好消息最多,同时技术图形如K线图、技术形态和技术指标等方面,经常营造买入信号,诱使投资者买入。

  记者:能不能具体举个案例?

  操盘手:如选定某某股,流通盘是8000万股,股价在15元左右。整个操盘过程和实施方案如下:

  1、在吸货阶段:首先采用来回震荡吸货方法,然后用缓慢推高吸货方法,最后用拉升吸货方法,完成第一阶段。期间上市公司可能有利空消息,如业绩亏损,经营不善等。

  2、控制流通盘筹码达到60%———70%。

  3、洗盘阶段:首先采用震荡洗盘,然后再用横盘洗盘,最后采用边拉边洗,完成第二阶段。消息处于真空期、封锁期。

  4、拉升阶段:首先采用温和拉升,然后再采用快速拉升,最后暴升。期间有上市公司的各种利好消息,如高比例送股;资产重组意向;行业转型等。

  5、出货阶段:首先采用拉升出货,图形向上假突破,再在高位反复震荡出货,最后打低出货。期间利好最多,如送股除权,资产重组,注入优质资产,业绩大幅上升,媒体大肆推荐。

  总之,机构操作股票的每一个步骤,都是着眼于人性的弱点———恐惧和贪婪而巧妙制定的。

  记者:那散户该如何跟庄?

  操盘手:在股市中能获利的散户永远都有,因为有经验的人在盘口发现有庄进场是非常容易的,用OBV指标结合量的变化就能发现机构的运作情况,无论庄家如何隐密和怎样打压,总有20%左右的死多头是不会出来的,这也是庄家最头痛的人。

  记者:如何才能正确判断庄家的出货?

  操盘手:有很多传言说,庄家至少在获利30%以后才会出货,这并不确切,庄家的进货成本和细节都是为外界所不确定,所以出货也不是绝对的。一般在有一定的获利后,大盘能够稳定,庄家都有一些减仓行为。对于获利程度,也是可变的,如一个庄家把赢利目标定为50%,虽然在只有25%盈利时被迫出货,但其另一部分赢利会通过融资的利润来实现,如果庄家部分出货,并能将股价维持在一定价位时,假设融资的比例为1:1,那么庄家的本金同样会有50%的利润。所以要判断庄家的出货,量是最关键的,如果单日的换手超过10%,至少是减仓,并且在出货时,庄家对技术指标的调整必不可少,对一些关口(压力支撑区、心理关口、整数关)护盘特别积极,这时的护盘,是为了保障股价不会大幅下跌,一方面可以将货出到好的价位,另一方面即便是融资,手中的筹码也能融得更多的资金。
什么是倒仓,倒仓对敲,有什么用,怎么才能看出来....
 
庄家两个号,一个抛一个吸,做成交量迷惑散户,很难看出来
是他一换,你从软件成交量上看就会有很大成交量,不是单买单卖有什么。比如他要拉升,一般技术派的认为价升要配合量涨,他就做出量来迷惑散户,让散户接盘。
这些问题要比较详细的学
洗盘

庄家为达炒作目的,必须于途中让低价买进,意志不坚的散户抛出股票,以减轻上档压力,同时让持股者的平均价位升高,以利于施行做庄的手段,达到牟取暴利的目的。

洗盘动作可以出现在庄家任何一个区域内,基本目的无非是为了清理市场多余的浮动筹码,抬高市场整体持仓成本。

盘中主力洗盘一般有下面两个方式:

(一)直接打压式

直接打压较多出现在庄家吸货区域,目的是为了吓退同一成本的浮动筹码。在盘中表现为开盘出奇地高,只有少许几笔主动性买单便掉头直下,一直打到前一日收盘价之下,持仓散户纷纷逢高出局。在这里,投资者不要简单认为股价脱离均价过远就去捡货,因为开盘形态基本决定了当日走势,主力有心开盘做打压动作,这个动作不会在很短时间内就完成。因此,较为稳妥的吸货点应在股价经过几波跳水下探,远离均价3%-5%以上处。在此位置上,市场当日短线浮筹已不愿再出货,主力也发现再打低会造成一定程度上的筹码流失。这样,这个位置应该是在洗盘动作中较为稳妥的吸货点,就算当日不反身向上,也是当日一个相对低价区,可以从容地静观其变,享受在洗盘振荡中的短差利润。

尾盘跳水这个动作是主力在洗盘动作时制造当日阴线的一个省钱的工具。盘口表现是在临近收盘几分钟,突然出现几笔巨大的抛单将股价打低,从5分钟跌幅排行榜中可以发现这个动作。这个进货机会不好把握,建议实战中不要抱有侥幸心理去守株待兔地找这样的进货机会。

(二)宽幅振荡式

宽幅振荡较多出现在上升中途,容易被操作者误认为是主力出货。识别这个动作的要领是要观察主力是否在中午收市前用急速冲高的这个动作。一般在临近中午收市前急于拉升股价都是为了下午的振荡打开空间,此时盘中一般只用几笔不大的买单便打高股价,且冲高的斜率让人难以接受,均线只作略微上。这时手中持仓者最好先逢高减仓,因为马上股价就会大幅向均价附近回归,甚至出现打压跳水动作。这种情况下,均价可能任股价上窜下跳而盘整不动,此时均价的位置是一个很好的进出参考点。
参考资料:财经晚报
 

0:22 | 评论 (0)

2007年12月17日 #

 

  如何从国外向国内快速汇款

如果您需要快速、安全地将款项汇至国内,请选择电汇方式。收款人只需持身份证件到中国银行开立一个活期储蓄账户,然后将账号、收款人名称(使用标准的汉语拼音)以及开户行名称、地址、SWIFT CODE通知汇款人。汇款人可持现金到当地的中国银行,按照收款人提供的信息将款项汇至国内的中国银行。如果当地没有中国银行,也可在自己的存款银行或当地的大银行将款项汇至国内中国银行。下面以汇款到北京为例:首先,收款人可在中国银行北京市分行的任何一个营业机构(包括储蓄所)开立一个活期一本通储蓄账户,然后将以下信息告知汇款人:
    1、收款人名称(请使用标准的汉语拼音)
    2、收款人账号
    3、中国银行北京市分行的英文名称等信息。即:
    BANK OF CHINA,BEIJING BRANCH
    NO.8 YABAOLU,BEJING,CHINA
    SWIFT CODE:BKCHCNBJ110
    无论收款人在中国银行北京市分行的哪一级机构开户,均提供上述银行信息,因为在中国银行的储蓄账号中包含了存款机构的代号。中国银行北京市分行汇款部收到国外银行发来的付款电报时,会立即将款项直接转入收款人账户。
    收款人只需持存折到就近的中国银行储蓄网点就可查询汇款是否到账。
 

16:46 | 评论 (0)

2007年11月18日 #

 

  总结性知识:做网站的十二大定律

1.250定律   拉德认为:每一位顾客身后,大体有250名亲朋好友。如果您赢得了一位顾客的好感,就意味着赢得了250个人的好感;反之,如果你得罪了一名顾客,也就意味着得罪了250 名顾客。 在你的网站访客中,一个访客可能可以带来一群访客,任何网站都有起步和发展的过程,这个过程中此定律尤其重要。
  2.达维多定律
  达维多认为,一个企业要想在市场上总是占据主导地位,那么就要做到第一个开发出新产品,又第一个淘汰自己的老产品。 国内网站跟风太严重,比如前段时间的格子网,乞讨网,博客网,一个成功了,大家一拥而上。但实际效果是,第一个出名的往往最成功,所以在网站的定位上,要动自己的脑筋,不是去捡人家剩下的客户。同理,买人家出售的数据来建站效果是很糟糕的。
  3.木桶定律
  水桶定律是指,一只水桶能装多少水,完全取决于它最短的那块木板。这就是说任何一个组织都可能面临的一个共同问题,即构成组织的各个部分往往决定了整个组织的水平。 注意审视自己的网站,是速度最糟糕?美工最糟糕?宣传最糟糕?你首先要做的,不是改进你最强的,而应该是你最薄弱的。
  4.马太效应
  《新约》中有这样一个故事,一个国王远行前,交给三个仆人每人一锭银子,吩咐他们:“你们去做生意,等我回来时,再来见我。”国王回来时,第一个仆人说: “主人,你交给我们的一锭银子,我已赚了10锭。”于是国王奖励他10座城邑。第二个仆人报告说:“主人,你给我的一锭银子,我已赚了5锭。” 于是国王例奖励了他5座城邑。第三个仆人报告说:“主人,你给我的一锭银子,我一直包在手巾里存着,我怕丢失,一直没有拿出来。”于是国王命令将第三个仆人的一锭银子也赏给第一个仆人,并且说:“凡是少的,就连他所有的也要夺过来。凡是多的,还要给他,叫他多多益善。”这就是马太效应。 在同类网站中,马太效应是很明显的。一个出名的社区,比一个新建的社区,更容易吸引到新客户。启示是,如果你无法把网站做大,那么你要做专。作专之后再做大就更容易。
  5.手表定理
  手表定理是指一个人有一只表时,可以知道现在是几点钟,而当他同时拥有两只表时却无法确定。
  一个网站,你只需要关注你特定的用户群需求。不要在意不相干人的看法。
  6.不值得定律
  不值得定律:不值得做的事情,就不值得做好 不要过度seo,如果你不是想只做垃圾站。不要把时间浪费在美化再美化页面,优化再优化程序,在你网站能盈利后,这些事情可以交给技术人员完成。
  7.彼得原理
  劳伦斯.彼得认为:在各种组织中,由于习惯于对在某个等级上称职的人员进行晋升提拔,因而雇员总是趋向于晋升到其不称职的地位。
  不要轻易改变自己网站的定位。如博客网想变门户,盛大想做娱乐,大家拭目以待吧。

  8.零和游戏原理
  当你看到两位对弈者时,你就可以说他们正在玩“零和游戏”。因为在大多数情况下, 总会有一个赢,一个输,如果我们把获胜计算为得1分,而输棋为-1分,那么,这两人得分之和就是:1+(-1)=0 不要把目光一直盯在你的竞争网站上,不要花太多时间抢它的访客。我们把这些时间用来寻找互补的合作网站,挖掘新访客。
  9.华盛顿合作规律
  华盛顿合作规律说的是: 一个人敷衍了事,两个人互相推诿, 三个人则永无成事之日。
  如果你看准一个方向,你自己干,缺人手就招。不要轻易找同伴一起搞网站,否则你会发现,日子似乎越过越快了,事情越做越慢了。
  10.邦尼人力定律
  一个人一分钟可以挖一个洞,六十个人一秒种却挖不了一个洞。合作是一个问题,如何合作也是一个问题。你需要有计划。
  11.牛蛙效应
  把一只牛蛙放在开水锅里,牛蛙会很快跳出来;但当你把它放在冷水里,它不会跳出来,然后慢慢加热,起初牛蛙出于懒惰,不会有什么动作,当水温高到它无法忍受的时候,想出来,但已经没有了力气。 如果你是soho,注意关注你的财务。不要等到没钱了再想怎么挣,你会发现那时候挣钱更难。
  12.蘑菇管理
  蘑菇管理是许多组织对待初出茅庐者的一种管理方法,初学者被置于阴暗的角落(不受重视的部门,或打杂跑腿的工作),浇上一头大粪(无端的批评、指责、代人受过),任其自生自灭(得不到必要的指导和提携)。
  做网站毕竟要遭遇这样的阶段,搜索引擎不理你,友情链接找不到,访客不上门。这是磨练。
  13.奥卡姆剃刀定律
  如无必要,勿增实体。
  把网站做得简单,再简单,简单到非常实用,而不是花俏。google的首页为什么比雅虎好?
  14.巴莱多定律(Paredo 也叫二八定律)
  你所完成的工作里80%的成果,来自于你20%的付出;而80%的付出,只换来20%的成果。
  随时衡量你所做的工作,哪些是最有效果的。 
  1.马蝇效应 
  林肯少年时和他的兄弟在肯塔基老家的一个农场里犁玉米地,林肯吆马,他兄弟扶犁,而那匹马很懒,慢慢腾腾,走走停停。可是有一段时间马走得飞快。 林肯感到奇怪,到了地头,他发现有一只很大的马蝇叮在马身上,他就把马蝇打落了。看到马蝇被打落了,他兄弟就抱怨说:”哎呀,你为什么要打掉它,正是那家伙使马跑起来的嘛!” 在你心满意足的时候,去寻找你的马蝇。没有firefox,不会有ie7,firefox就是微软的马蝇之一。马蝇不可怕,怕的是会一口吃掉你的东西,像 ie当初对网景干的那样。 
  2.最高气温效应 
  每天最热总是下午2 时左右,我们总认为这个时候太阳最厉害,其实这时的太阳早已偏西,不再是供给最大热量的时候了。此时气温之所以最高,不过是源于此前的热量积累。
  你今天的网站流量,是你一个星期或更长时间前所做的事带来的。 
  3.超限效应(溢出效应) 
  刺激过多、过强和作用时间过久而引起心理极不耐烦或反抗的心理现象,称之为“超限效应”。 别到别人论坛里发太多广告。别在自己网站上放太多广告。别在自己的论坛里太多地太明显地诱导话题。 
  4.懒蚂蚁效应 
  生物学家研究发现,成群的蚂蚁中,大部分蚂蚁很勤劳,寻找、搬运食物争先恐后,少数蚂蚁却东张西望不干活。当食物来源断绝或蚁窝被破坏时,那些勤快的蚂蚁一筹莫展。“懒蚂蚁”则“挺身而出”,带领众伙伴向它早已侦察到的新的食物源转移。 不要把注意力仅仅放在一个网站上,即使这个网站现在为你带来一切。你要给自己一些时间寻找新的可行的方向,以备万一。 
  5.长尾理论 
  ChrisAnderson认为,只要存储和流通的渠道足够大,需求不旺或销量不佳的产品共同占据的市场份额就可以和那些数量不多的热卖品所占据的市场份额相匹敌甚至更大。 对于搜索引擎,未必你需要一个热门词排在第一位,如果有一千个冷门词排在第一位,效果不但一样,还会更稳定更长远。 
  6.破窗理论 
  栋建筑上的一块玻璃,又没有及时修好,别人就可能受到某些暗示性的纵容,去打碎更多的玻璃。 管理论坛时,如果你发现第一个垃圾贴,赶紧删掉他吧。想想:落伍现在为什么那么多××贴?现在控制比最初控制难多了。 
  7.“羊群效应”,又称复制原则(Copy Strategy) 
  一个羊群(集体)是一个很散乱的组织,平时大家在一起盲目地左冲右撞。如果一头羊发现了一片肥沃的绿草地,并在那里吃到了新鲜的青草,后来的羊群就会一哄而上,争抢那里的青草,全然不顾旁边虎视眈眈的狼,或者看不到其它地方还有更好的青草。
  不要轻易跟风,保持自己思考的能力。 
  8.墨菲定律 
  如果坏事情有可能发生,不管这种可能性多么小,它总会发生,并引起最大可能的损失。
  除非垃圾站,否则不要作弊,对搜索引擎不要,对广告也不要。 
  9.光环效应 
  人们对人的某种品质或特点有清晰的知觉,印象比较深刻、突出, 这种强烈的知觉, 就像月晕形式的光环一样,向周围弥漫、扩散,掩盖了对这个人的其他品质或特点的认识。
  不要轻易崇拜一个人或者公司、一个概念、一种做法。 
  10.蝴蝶效应 
  一只亚马逊河流域热带雨林中的蝴蝶,偶尔扇动几下翅膀,两周后,可能在美国德克萨斯州引起一场龙卷风。
  不管你做什么,网站或者其他,你都应该关注新闻。机遇或者灾难可能就在那。 
  11.阿尔巴德定理 
  一个企业经营成功与否,全靠对顾客的要求了解到什么程度。 我赞同别人的点评:看到了别人的需要,你就成功了一半;满足了别人的需求,你就成功了全部。尤其是做网站。 
  12.史密斯原则 
  如果你不能战胜他们,你就加入到他们之中去。 
  不要试图做孤胆英雄。如果潮流挡不住,至少,你要去思考为什么。
 

15:01 | 评论 (0)

2007年11月6日 #

 

  SQL Server 2000 索引结构及其使用

http://www.vckbase.com/document/listdoc.asp?sclsid=1111

一、深入浅出理解索引结构

  实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别:
  其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字;同样的,如果查“张”字,那您也会将您的字典翻到最后部分,因为“张”的拼音是“zhang”。也就是说,字典的正文部分本身就是一个目录,您不需要再去查其他目录来找到您需要找的内容。我们把这种正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”。
  如果您认识某个字,您可以快速地从自动中查到这个字。但您也可能会遇到您不认识的字,不知道它的发音,这时候,您就不能按照刚才的方法找到您要查的字,而需要去根据“偏旁部首”查到您要找的字,然后根据这个字后的页码直接翻到某页来找到您要找的字。但您结合“部首目录”和“检字表”而查到的字的排序并不是真正的正文的排序方法,比如您查“张”字,我们可以看到在查部首之后的检字表中“张”的页码是672页,检字表中“张”的上面是“驰”字,但页码却是63页,“张”的下面是“弩”字,页面是390页。很显然,这些字并不是真正的分别位于“张”字的上下方,现在您看到的连续的“驰、张、弩”三字实际上就是他们在非聚集索引中的排序,是字典正文中的字在非聚集索引中的映射。我们可以通过这种方式来找到您所需要的字,但它需要两个过程,先找到目录中的结果,然后再翻到您所需要的页码。我们把这种目录纯粹是目录,正文纯粹是正文的排序方式称为“非聚集索引”。
  通过以上例子,我们可以理解到什么是“聚集索引”和“非聚集索引”。进一步引申一下,我们可以很容易的理解:每个表只能有一个聚集索引,因为目录只能按照一种方法进行排序。

二、何时使用聚集索引或非聚集索引

下面的表总结了何时使用聚集索引或非聚集索引(很重要):

动作描述 使用聚集索引 使用非聚集索引
列经常被分组排序
返回某范围内的数据 不应
一个或极少不同值 不应 不应
小数目的不同值 不应
大数目的不同值 不应
频繁更新的列 不应
外键列
主键列
频繁修改索引列 不应

  事实上,我们可以通过前面聚集索引和非聚集索引的定义的例子来理解上表。如:返回某范围内的数据一项。比如您的某个表有一个时间列,恰好您把聚合索引建立在了该列,这时您查询2004年1月1日至2004年10月1日之间的全部数据时,这个速度就将是很快的,因为您的这本字典正文是按日期进行排序的,聚类索引只需要找到要检索的所有数据中的开头和结尾数据即可;而不像非聚集索引,必须先查到目录中查到每一项数据对应的页码,然后再根据页码查到具体内容。

三、结合实际,谈索引使用的误区

  理论的目的是应用。虽然我们刚才列出了何时应使用聚集索引或非聚集索引,但在实践中以上规则却很容易被忽视或不能根据实际情况进行综合分析。下面我们将根据在实践中遇到的实际问题来谈一下索引使用的误区,以便于大家掌握索引建立的方法。

1、主键就是聚集索引
  这种想法笔者认为是极端错误的,是对聚集索引的一种浪费。虽然SQL SERVER默认是在主键上建立聚集索引的。
  通常,我们会在每个表中都建立一个ID列,以区分每条数据,并且这个ID列是自动增大的,步长一般为1。我们的这个办公自动化的实例中的列Gid就是如此。此时,如果我们将这个列设为主键,SQL SERVER会将此列默认为聚集索引。这样做有好处,就是可以让您的数据在数据库中按照ID进行物理排序,但笔者认为这样做意义不大。
  显而易见,聚集索引的优势是很明显的,而每个表中只能有一个聚集索引的规则,这使得聚集索引变得更加珍贵。
  从我们前面谈到的聚集索引的定义我们可以看出,使用聚集索引的最大好处就是能够根据查询要求,迅速缩小查询范围,避免全表扫描。在实际应用中,因为ID号是自动生成的,我们并不知道每条记录的ID号,所以我们很难在实践中用ID号来进行查询。这就使让ID号这个主键作为聚集索引成为一种资源浪费。其次,让每个ID号都不同的字段作为聚集索引也不符合“大数目的不同值情况下不应建立聚合索引”规则;当然,这种情况只是针对用户经常修改记录内容,特别是索引项的时候会负作用,但对于查询速度并没有影响。
  在办公自动化系统中,无论是系统首页显示的需要用户签收的文件、会议还是用户进行文件查询等任何情况下进行数据查询都离不开字段的是“日期”还有用户本身的“用户名”。
  通常,办公自动化的首页会显示每个用户尚未签收的文件或会议。虽然我们的where语句可以仅仅限制当前用户尚未签收的情况,但如果您的系统已建立了很长时间,并且数据量很大,那么,每次每个用户打开首页的时候都进行一次全表扫描,这样做意义是不大的,绝大多数的用户1个月前的文件都已经浏览过了,这样做只能徒增数据库的开销而已。事实上,我们完全可以让用户打开系统首页时,数据库仅仅查询这个用户近3个月来未阅览的文件,通过“日期”这个字段来限制表扫描,提高查询速度。如果您的办公自动化系统已经建立的2年,那么您的首页显示速度理论上将是原来速度8倍,甚至更快。
  在这里之所以提到“理论上”三字,是因为如果您的聚集索引还是盲目地建在ID这个主键上时,您的查询速度是没有这么高的,即使您在“日期”这个字段上建立的索引(非聚合索引)。下面我们就来看一下在1000万条数据量的情况下各种查询的速度表现(3个月内的数据为25万条):

(1)仅在主键上建立聚集索引,并且不划分时间段:

Select gid,fariqi,neibuyonghu,title from tgongwen

用时:128470毫秒(即:128秒)

(2)在主键上建立聚集索引,在fariq上建立非聚集索引:

select gid,fariqi,neibuyonghu,title from Tgongwen
where fariqi> dateadd(day,-90,getdate())

用时:53763毫秒(54秒)

(3)将聚合索引建立在日期列(fariqi)上:

select gid,fariqi,neibuyonghu,title from Tgongwen
where fariqi> dateadd(day,-90,getdate())

用时:2423毫秒(2秒)

  虽然每条语句提取出来的都是25万条数据,各种情况的差异却是巨大的,特别是将聚集索引建立在日期列时的差异。事实上,如果您的数据库真的有1000万容量的话,把主键建立在ID列上,就像以上的第1、2种情况,在网页上的表现就是超时,根本就无法显示。这也是我摒弃ID列作为聚集索引的一个最重要的因素。得出以上速度的方法是:在各个select语句前加:

declare @d datetime
set @d=getdate()

并在select语句后加:

select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())

2、只要建立索引就能显著提高查询速度
  事实上,我们可以发现上面的例子中,第2、3条语句完全相同,且建立索引的字段也相同;不同的仅是前者在fariqi字段上建立的是非聚合索引,后者在此字段上建立的是聚合索引,但查询速度却有着天壤之别。所以,并非是在任何字段上简单地建立索引就能提高查询速度。
  从建表的语句中,我们可以看到这个有着1000万数据的表中fariqi字段有5003个不同记录。在此字段上建立聚合索引是再合适不过了。在现实中,我们每天都会发几个文件,这几个文件的发文日期就相同,这完全符合建立聚集索引要求的:“既不能绝大多数都相同,又不能只有极少数相同”的规则。由此看来,我们建立“适当”的聚合索引对于我们提高查询速度是非常重要的。

3、把所有需要提高查询速度的字段都加进聚集索引,以提高查询速度
  上面已经谈到:在进行数据查询时都离不开字段的是“日期”还有用户本身的“用户名”。既然这两个字段都是如此的重要,我们可以把他们合并起来,建立一个复合索引(compound index)。
  很多人认为只要把任何字段加进聚集索引,就能提高查询速度,也有人感到迷惑:如果把复合的聚集索引字段分开查询,那么查询速度会减慢吗?带着这个问题,我们来看一下以下的查询速度(结果集都是25万条数据):(日期列fariqi首先排在复合聚集索引的起始列,用户名neibuyonghu排在后列):

(1)select gid,fariqi,neibuyonghu,title from Tgongwen where fariqi>''2004-5-5'' 

查询速度:2513毫秒

(2)select gid,fariqi,neibuyonghu,title from Tgongwen 
            where fariqi>''2004-5-5'' and neibuyonghu=''办公室''

查询速度:2516毫秒

(3)select gid,fariqi,neibuyonghu,title from Tgongwen where neibuyonghu=''办公室''

查询速度:60280毫秒

  从以上试验中,我们可以看到如果仅用聚集索引的起始列作为查询条件和同时用到复合聚集索引的全部列的查询速度是几乎一样的,甚至比用上全部的复合索引列还要略快(在查询结果集数目一样的情况下);而如果仅用复合聚集索引的非起始列作为查询条件的话,这个索引是不起任何作用的。当然,语句1、2的查询速度一样是因为查询的条目数一样,如果复合索引的所有列都用上,而且查询结果少的话,这样就会形成“索引覆盖”,因而性能可以达到最优。同时,请记住:无论您是否经常使用聚合索引的其他列,但其前导列一定要是使用最频繁的列。

四、其他书上没有的索引使用经验总结

1、用聚合索引比用不是聚合索引的主键速度快
  下面是实例语句:(都是提取25万条数据)

select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-9-16''

使用时间:3326毫秒

select gid,fariqi,neibuyonghu,reader,title from Tgongwen where gid<=250000

使用时间:4470毫秒

这里,用聚合索引比用不是聚合索引的主键速度快了近1/4。

2、用聚合索引比用一般的主键作order by时速度快,特别是在小数据量情况下

select gid,fariqi,neibuyonghu,reader,title from Tgongwen order by fariqi

用时:12936

select gid,fariqi,neibuyonghu,reader,title from Tgongwen order by gid

用时:18843

  这里,用聚合索引比用一般的主键作order by时,速度快了3/10。事实上,如果数据量很小的话,用聚集索引作为排序列要比使用非聚集索引速度快得明显的多;而数据量如果很大的话,如10万以上,则二者的速度差别不明显。

3、使用聚合索引内的时间段,搜索时间会按数据占整个数据表的百分比成比例减少,而无论聚合索引使用了多少个:

select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi>''2004-1-1''

用时:6343毫秒(提取100万条)

select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi>''2004-6-6''

用时:3170毫秒(提取50万条)

select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-9-16''

用时:3326毫秒(和上句的结果一模一样。如果采集的数量一样,那么用大于号和等于号是一样的)

select gid,fariqi,neibuyonghu,reader,title from Tgongwen 
            where fariqi>''2004-1-1'' and fariqi<''2004-6-6''

用时:3280毫秒

4、日期列不会因为有分秒的输入而减慢查询速度
  下面的例子中,共有100万条数据,2004年1月1日以后的数据有50万条,但只有两个不同的日期,日期精确到日;之前有数据50万条,有5000个不同的日期,日期精确到秒。

select gid,fariqi,neibuyonghu,reader,title from Tgongwen 
          where fariqi>''2004-1-1'' order by fariqi

用时:6390毫秒

select gid,fariqi,neibuyonghu,reader,title from Tgongwen 
            where fariqi<''2004-1-1'' order by fariqi

用时:6453毫秒

五、其他注意事项

  “水可载舟,亦可覆舟”,索引也一样。索引有助于提高检索性能,但过多或不当的索引也会导致系统低效。因为用户在表中每加进一个索引,数据库就要做更多的工作。过多的索引甚至会导致索引碎片。
  所以说,我们要建立一个“适当”的索引体系,特别是对聚合索引的创建,更应精益求精,以使您的数据库能得到高性能的发挥。
  当然,在实践中,作为一个尽职的数据库管理员,您还要多测试一些方案,找出哪种方案效率最高、最为有效。

[ 原创文档 本文适合中级读者 已阅读12631次 ]

SQL Server 索引结构及其使用(二)

作者:freedk

一、深入浅出理解索引结构

改善SQL语句

  很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解。比如:

select * from table1 where name=''zhangsan'' and tID > 10000

和执行:

select * from table1 where tID > 10000 and name=''zhangsan''

  一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那么后一句仅仅从表的10000条以后的记录中查找就行了;而前一句则要先从全表中查找看有几个name=''zhangsan''的,而后再根据限制条件条件tID>10000来提出查询结果。
  事实上,这样的担心是不必要的。SQL SERVER中有一个“查询分析优化器”,它可以计算出where子句中的搜索条件并确定哪个索引能缩小表扫描的搜索空间,也就是说,它能实现自动优化。
  虽然查询优化器可以根据where子句自动的进行查询优化,但大家仍然有必要了解一下“查询优化器”的工作原理,如非这样,有时查询优化器就会不按照您的本意进行快速查询。
  在查询分析阶段,查询优化器查看查询的每个阶段并决定限制需要扫描的数据量是否有用。如果一个阶段可以被用作一个扫描参数(SARG),那么就称之为可优化的,并且可以利用索引快速获得所需数据。
  SARG的定义:用于限制搜索的一个操作,因为它通常是指一个特定的匹配,一个值得范围内的匹配或者两个以上条件的AND连接。形式如下:

列名 操作符 <常数 或 变量>

或

<常数 或 变量> 操作符列名

列名可以出现在操作符的一边,而常数或变量出现在操作符的另一边。如:

Name=’张三’

价格>5000

5000<价格

Name=’张三’ and 价格>5000

  如果一个表达式不能满足SARG的形式,那它就无法限制搜索的范围了,也就是SQL SERVER必须对每一行都判断它是否满足WHERE子句中的所有条件。所以一个索引对于不满足SARG形式的表达式来说是无用的。
  介绍完SARG后,我们来总结一下使用SARG以及在实践中遇到的和某些资料上结论不同的经验:

1、Like语句是否属于SARG取决于所使用的通配符的类型

如:name like ‘张%’ ,这就属于SARG

而:name like ‘%张’ ,就不属于SARG。

原因是通配符%在字符串的开通使得索引无法使用。

2、or 会引起全表扫描
  Name=’张三’ and 价格>5000 符号SARG,而:Name=’张三’ or 价格>5000 则不符合SARG。使用or会引起全表扫描。

3、非操作符、函数引起的不满足SARG形式的语句
  不满足SARG形式的语句最典型的情况就是包括非操作符的语句,如:NOT、!=、<>、!<、!>、NOT EXISTS、NOT IN、NOT LIKE等,另外还有函数。下面就是几个不满足SARG形式的例子:

ABS(价格)<5000

Name like ‘%三’

有些表达式,如:

WHERE 价格*2>5000

SQL SERVER也会认为是SARG,SQL SERVER会将此式转化为:
WHERE 价格>2500/2

但我们不推荐这样使用,因为有时SQL SERVER不能保证这种转化与原始表达式是完全等价的。

4、IN 的作用相当与OR

语句:

Select * from table1 where tid in (2,3)

和

Select * from table1 where tid=2 or tid=3

是一样的,都会引起全表扫描,如果tid上有索引,其索引也会失效。

5、尽量少用NOT

6、exists 和 in 的执行效率是一样的
  很多资料上都显示说,exists要比in的执行效率要高,同时应尽可能的用not exists来代替not in。但事实上,我试验了一下,发现二者无论是前面带不带not,二者之间的执行效率都是一样的。因为涉及子查询,我们试验这次用SQL SERVER自带的pubs数据库。运行前我们可以把SQL SERVER的statistics I/O状态打开:

(1)select title,price from titles where title_id in (select title_id from sales where qty>30)

该句的执行结果为:

表 ''sales''。扫描计数 18,逻辑读 56 次,物理读 0 次,预读 0 次。
表 ''titles''。扫描计数 1,逻辑读 2 次,物理读 0 次,预读 0 次。

(2)select title,price from titles 
       where exists (select * from sales 
       where sales.title_id=titles.title_id and qty>30)

第二句的执行结果为:

表 ''sales''。扫描计数 18,逻辑读 56 次,物理读 0 次,预读 0 次。
表 ''titles''。扫描计数 1,逻辑读 2 次,物理读 0 次,预读 0 次。

我们从此可以看到用exists和用in的执行效率是一样的。

7、用函数charindex()和前面加通配符%的LIKE执行效率一样
  前面,我们谈到,如果在LIKE前面加上通配符%,那么将会引起全表扫描,所以其执行效率是低下的。但有的资料介绍说,用函数charindex()来代替LIKE速度会有大的提升,经我试验,发现这种说明也是错误的:
 

select gid,title,fariqi,reader from tgongwen 
         where charindex(''刑侦支队'',reader)>0 and fariqi>''2004-5-5''

用时:7秒,另外:扫描计数 4,逻辑读 7155 次,物理读 0 次,预读 0 次。

select gid,title,fariqi,reader from tgongwen 
         where reader like ''%'' + ''刑侦支队'' + ''%'' and fariqi>''2004-5-5''

用时:7秒,另外:扫描计数 4,逻辑读 7155 次,物理读 0 次,预读 0 次。

8、union并不绝对比or的执行效率高
  我们前面已经谈到了在where子句中使用or会引起全表扫描,一般的,我所见过的资料都是推荐这里用union来代替or。事实证明,这种说法对于大部分都是适用的。

select gid,fariqi,neibuyonghu,reader,title from Tgongwen 
          where fariqi=''2004-9-16'' or gid>9990000

用时:68秒。扫描计数 1,逻辑读 404008 次,物理读 283 次,预读 392163 次。

select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-9-16'' 
union
select gid,fariqi,neibuyonghu,reader,title from Tgongwen where gid>9990000

用时:9秒。扫描计数 8,逻辑读 67489 次,物理读 216 次,预读 7499 次。

看来,用union在通常情况下比用or的效率要高的多。

  但经过试验,笔者发现如果or两边的查询列是一样的话,那么用union则反倒和用or的执行速度差很多,虽然这里union扫描的是索引,而or扫描的是全表。
 

select gid,fariqi,neibuyonghu,reader,title from Tgongwen 
          where fariqi=''2004-9-16'' or fariqi=''2004-2-5''

用时:6423毫秒。扫描计数 2,逻辑读 14726 次,物理读 1 次,预读 7176 次。

select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-9-16'' 
union
select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-2-5''

用时:11640毫秒。扫描计数 8,逻辑读 14806 次,物理读 108 次,预读 1144 次。

9、字段提取要按照“需多少、提多少”的原则,避免“select *”
  我们来做一个试验:

select top 10000 gid,fariqi,reader,title from tgongwen order by gid desc

用时:4673毫秒

select top 10000 gid,fariqi,title from tgongwen order by gid desc

用时:1376毫秒

select top 10000 gid,fariqi from tgongwen order by gid desc

用时:80毫秒

  由此看来,我们每少提取一个字段,数据的提取速度就会有相应的提升。提升的速度还要看您舍弃的字段的大小来判断。

10、count(*)不比count(字段)慢
  某些资料上说:用*会统计所有列,显然要比一个世界的列名效率低。这种说法其实是没有根据的。我们来看:

select count(*) from Tgongwen

用时:1500毫秒

select count(gid) from Tgongwen 

用时:1483毫秒

select count(fariqi) from Tgongwen

用时:3140毫秒

select count(title) from Tgongwen

用时:52050毫秒

  从以上可以看出,如果用count(*)和用count(主键)的速度是相当的,而count(*)却比其他任何除主键以外的字段汇总速度要快,而且字段越长,汇总的速度就越慢。我想,如果用count(*), SQL SERVER可能会自动查找最小字段来汇总的。当然,如果您直接写count(主键)将会来的更直接些。

11、order by按聚集索引列排序效率最高
  我们来看:(gid是主键,fariqi是聚合索引列):

select top 10000 gid,fariqi,reader,title from tgongwen

用时:196 毫秒。 扫描计数 1,逻辑读 289 次,物理读 1 次,预读 1527 次。

select top 10000 gid,fariqi,reader,title from tgongwen order by gid asc

用时:4720毫秒。 扫描计数 1,逻辑读 41956 次,物理读 0 次,预读 1287 次。

select top 10000 gid,fariqi,reader,title from tgongwen order by gid desc

用时:4736毫秒。 扫描计数 1,逻辑读 55350 次,物理读 10 次,预读 775 次。

select top 10000 gid,fariqi,reader,title from tgongwen order by fariqi asc

用时:173毫秒。 扫描计数 1,逻辑读 290 次,物理读 0 次,预读 0 次。

select top 10000 gid,fariqi,reader,title from tgongwen order by fariqi desc

用时:156毫秒。 扫描计数 1,逻辑读 289 次,物理读 0 次,预读 0 次。

  从以上我们可以看出,不排序的速度以及逻辑读次数都是和“order by 聚集索引列” 的速度是相当的,但这些都比“order by 非聚集索引列”的查询速度是快得多的。
  同时,按照某个字段进行排序的时候,无论是正序还是倒序,速度是基本相当的。

12、高效的TOP
  事实上,在查询和提取超大容量的数据集时,影响数据库响应时间的最大因素不是数据查找,而是物理的I/0操作。如:

select top 10 * from (
select top 10000 gid,fariqi,title from tgongwen
where neibuyonghu=''办公室''
order by gid desc) as a
order by gid asc

  这条语句,从理论上讲,整条语句的执行时间应该比子句的执行时间长,但事实相反。因为,子句执行后返回的是10000条记录,而整条语句仅返回10条语句,所以影响数据库响应时间最大的因素是物理I/O操作。而限制物理I/O操作此处的最有效方法之一就是使用TOP关键词了。TOP关键词是SQL SERVER中经过系统优化过的一个用来提取前几条或前几个百分比数据的词。经笔者在实践中的应用,发现TOP确实很好用,效率也很高。但这个词在另外一个大型数据库ORACLE中却没有,这不能说不是一个遗憾,虽然在ORACLE中可以用其他方法(如:rownumber)来解决。在以后的关于“实现千万级数据的分页显示存储过程”的讨论中,我们就将用到TOP这个关键词。
  到此为止,我们上面讨论了如何实现从大容量的数据库中快速地查询出您所需要的数据方法。当然,我们介绍的这些方法都是“软”方法,在实践中,我们还要考虑各种“硬”因素,如:网络性能、服务器的性能、操作系统的性能,甚至网卡、交换机等。

实现小数据量和海量数据的通用分页显示存储过程

  建立一个 Web 应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将相关的记录锁住,直到取消游标。游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作。而对于多表和大表中定义的游标(大的数据集合)循环很容易使程序进入一个漫长的等待甚至死机。
  更重要的是,对于非常大的数据模型而言,分页检索时,如果按照传统的每次都加载整个数据源的方法是非常浪费资源的。现在流行的分页方法一般是检索页面大小的块区的数据,而非检索所有的数据,然后单步执行当前行。
  最早较好地实现这种根据页面大小和页码来提取数据的方法大概就是“俄罗斯存储过程”。这个存储过程用了游标,由于游标的局限性,所以这个方法并没有得到大家的普遍认可。
  后来,网上有人改造了此存储过程,下面的存储过程就是结合我们的办公自动化实例写的分页存储过程:

CREATE procedure pagination1
(@pagesize int, --页面大小,如每页存储20条记录
@pageindex int --当前页码
)
as

set nocount on

begin
declare @indextable table(id int identity(1,1),nid int) --定义表变量
declare @PageLowerBound int --定义此页的底码
declare @PageUpperBound int --定义此页的顶码
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
set rowcount @PageUpperBound
insert into @indextable(nid) select gid from TGongwen 
      where fariqi >dateadd(day,-365,getdate()) order by fariqi desc
select O.gid,O.mid,O.title,O.fadanwei,O.fariqi from TGongwen O,@indextable t 
           where O.gid=t.nid and t.id>@PageLowerBound 
                        and t.id<=@PageUpperBound order by t.id
end

set nocount off

  以上存储过程运用了SQL SERVER的最新技术――表变量。应该说这个存储过程也是一个非常优秀的分页存储过程。当然,在这个过程中,您也可以把其中的表变量写成临时表:CREATE TABLE #Temp。但很明显,在SQL SERVER中,用临时表是没有用表变量快的。所以笔者刚开始使用这个存储过程时,感觉非常的不错,速度也比原来的ADO的好。但后来,我又发现了比此方法更好的方法。
  笔者曾在网上看到了一篇小短文《从数据表中取出第n条到第m条的记录的方法》,全文如下:

从publish 表中取出第 n 条到第 m 条的记录: 
SELECT TOP m-n+1 * 
FROM publish 
WHERE (id NOT IN 
    (SELECT TOP n-1 id 
     FROM publish)) 

id 为publish 表的关键字 

  我当时看到这篇文章的时候,真的是精神为之一振,觉得思路非常得好。等到后来,我在作办公自动化系统(ASP.NET+ C#+SQL SERVER)的时候,忽然想起了这篇文章,我想如果把这个语句改造一下,这就可能是一个非常好的分页存储过程。于是我就满网上找这篇文章,没想到,文章还没找到,却找到了一篇根据此语句写的一个分页存储过程,这个存储过程也是目前较为流行的一种分页存储过程,我很后悔没有争先把这段文字改造成存储过程:

CREATE PROCEDURE pagination2
(
@SQL nVARCHAR(4000), --不带排序语句的SQL语句
@Page int, --页码
@RecsPerPage int, --每页容纳的记录数
@ID VARCHAR(255), --需要排序的不重复的ID号
@Sort VARCHAR(255) --排序字段及规则
)
AS

DECLARE @Str nVARCHAR(4000)

SET @Str=''SELECT TOP ''+CAST(@RecsPerPage AS VARCHAR(20))+'' * FROM 
(''+@SQL+'') T WHERE T.''+@ID+''NOT IN (SELECT TOP ''+CAST((@RecsPerPage*(@Page-1)) 
AS VARCHAR(20))+'' ''+@ID+'' FROM (''+@SQL+'') T9 ORDER BY ''+@Sort+'') ORDER BY ''+@Sort

PRINT @Str

EXEC sp_ExecuteSql @Str
GO

其实,以上语句可以简化为:

SELECT TOP 页大小 *
FROM Table1 WHERE (ID NOT IN (SELECT TOP 页大小*页数 id FROM 表 ORDER BY id))
ORDER BY ID

但这个存储过程有一个致命的缺点,就是它含有NOT IN字样。虽然我可以把它改造为:

SELECT TOP 页大小 *
FROM Table1 WHERE not exists
(select * from (select top (页大小*页数) * from table1 order by id) b where b.id=a.id )
order by id

  即,用not exists来代替not in,但我们前面已经谈过了,二者的执行效率实际上是没有区别的。既便如此,用TOP 结合NOT IN的这个方法还是比用游标要来得快一些。
  虽然用not exists并不能挽救上个存储过程的效率,但使用SQL SERVER中的TOP关键字却是一个非常明智的选择。因为分页优化的最终目的就是避免产生过大的记录集,而我们在前面也已经提到了TOP的优势,通过TOP 即可实现对数据量的控制。
  在分页算法中,影响我们查询速度的关键因素有两点:TOP和NOT IN。TOP可以提高我们的查询速度,而NOT IN会减慢我们的查询速度,所以要提高我们整个分页算法的速度,就要彻底改造NOT IN,同其他方法来替代它。
  我们知道,几乎任何字段,我们都可以通过max(字段)或min(字段)来提取某个字段中的最大或最小值,所以如果这个字段不重复,那么就可以利用这些不重复的字段的max或min作为分水岭,使其成为分页算法中分开每页的参照物。在这里,我们可以用操作符“>”或“<”号来完成这个使命,使查询语句符合SARG形式。如:

Select top 10 * from table1 where id>200

于是就有了如下分页方案:

select top 页大小 *
from table1 
where id>
(select max (id) from 
(select top ((页码-1)*页大小) id from table1 order by id) as T
) 
order by id

  在选择即不重复值,又容易分辨大小的列时,我们通常会选择主键。下表列出了笔者用有着1000万数据的办公自动化系统中的表,在以GID(GID是主键,但并不是聚集索引。)为排序列、提取gid,fariqi,title字段,分别以第1、10、100、500、1000、1万、10万、25万、50万页为例,测试以上三种分页方案的执行速度:(单位:毫秒)

页码 方案1 方案2 方案3
1 60 30 76
10 46 16 63
100 1076 720 130
500 540 12943 83
1000 17110 470 250
10000 24796 4500 140
100000 38326 42283 1553
250000 28140 128720 2330
500000 121686 127846 7168

  从上表中,我们可以看出,三种存储过程在执行100页以下的分页命令时,都是可以信任的,速度都很好。但第一种方案在执行分页1000页以上后,速度就降了下来。第二种方案大约是在执行分页1万页以上后速度开始降了下来。而第三种方案却始终没有大的降势,后劲仍然很足。
  在确定了第三种分页方案后,我们可以据此写一个存储过程。大家知道SQL SERVER的存储过程是事先编译好的SQL语句,它的执行效率要比通过WEB页面传来的SQL语句的执行效率要高。下面的存储过程不仅含有分页方案,还会根据页面传来的参数来确定是否进行数据总数统计。

--获取指定页的数据:

CREATE PROCEDURE pagination3
@tblName varchar(255), -- 表名
@strGetFields varchar(1000) = ''*'', -- 需要返回的列 
@fldName varchar(255)='''', -- 排序的字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@doCount bit = 0, -- 返回记录总数, 非 0 值则返回
@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
@strWhere varchar(1500) = '''' -- 查询条件 (注意: 不要加 where)
AS

declare @strSQL varchar(5000) -- 主语句
declare @strTmp varchar(110) -- 临时变量
declare @strOrder varchar(400) -- 排序类型

if @doCount != 0
begin
if @strWhere !=''''
set @strSQL = "select count(*) as Total from [" + @tblName + "] where "+@strWhere
else
set @strSQL = "select count(*) as Total from [" + @tblName + "]"
end 

--以上代码的意思是如果@doCount传递过来的不是0,就执行总数统计。以下的所有代码都是@doCount为0的情况:

else
begin
if @OrderType != 0
begin
set @strTmp = "<(select min"
set @strOrder = " order by [" + @fldName +"] desc"

--如果@OrderType不是0,就执行降序,这句很重要!

end
else
begin
set @strTmp = ">(select max"
set @strOrder = " order by [" + @fldName +"] asc"
end

if @PageIndex = 1
begin
if @strWhere != '''' 

set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ "
        from [" + @tblName + "] where " + @strWhere + " " + @strOrder
else

set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " 
        from ["+ @tblName + "] "+ @strOrder

--如果是第一页就执行以上代码,这样会加快执行速度

end
else
begin

--以下代码赋予了@strSQL以真正执行的SQL代码
 

set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from ["
+ @tblName + "] where [" + @fldName + "]" + @strTmp + "(["+ @fldName + "]) 
      from (select top " + str((@PageIndex-1)*@PageSize) + " ["+ @fldName + "] 
      from [" + @tblName + "]" + @strOrder + ") as tblTmp)"+ @strOrder

if @strWhere != ''''
set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from ["
+ @tblName + "] where [" + @fldName + "]" + @strTmp + "(["
+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["
+ @fldName + "] from [" + @tblName + "] where " + @strWhere + " "
+ @strOrder + ") as tblTmp) and " + @strWhere + " " + @strOrder
end 

end 

exec (@strSQL)

GO

  上面的这个存储过程是一个通用的存储过程,其注释已写在其中了。 在大数据量的情况下,特别是在查询最后几页的时候,查询时间一般不会超过9秒;而用其他存储过程,在实践中就会导致超时,所以这个存储过程非常适用于大容量数据库的查询。 笔者希望能够通过对以上存储过程的解析,能给大家带来一定的启示,并给工作带来一定的效率提升,同时希望同行提出更优秀的实时数据分页算法。

聚集索引的重要性和如何选择聚集索引

  在上一节的标题中,笔者写的是:实现小数据量和海量数据的通用分页显示存储过程。这是因为在将本存储过程应用于“办公自动化”系统的实践中时,笔者发现这第三种存储过程在小数据量的情况下,有如下现象:

1、分页速度一般维持在1秒和3秒之间。

2、在查询最后一页时,速度一般为5秒至8秒,哪怕分页总数只有3页或30万页。

  虽然在超大容量情况下,这个分页的实现过程是很快的,但在分前几页时,这个1-3秒的速度比起第一种甚至没有经过优化的分页方法速度还要慢,借用户的话说就是“还没有ACCESS数据库速度快”,这个认识足以导致用户放弃使用您开发的系统。
  笔者就此分析了一下,原来产生这种现象的症结是如此的简单,但又如此的重要:排序的字段不是聚集索引!
  本篇文章的题目是:“查询优化及分页算法方案”。笔者只所以把“查询优化”和“分页算法”这两个联系不是很大的论题放在一起,就是因为二者都需要一个非常重要的东西――聚集索引。
在前面的讨论中我们已经提到了,聚集索引有两个最大的优势:

1、以最快的速度缩小查询范围。

2、以最快的速度进行字段排序。

  第1条多用在查询优化时,而第2条多用在进行分页时的数据排序。

  而聚集索引在每个表内又只能建立一个,这使得聚集索引显得更加的重要。聚集索引的挑选可以说是实现“查询优化”和“高效分页”的最关键因素。
  但要既使聚集索引列既符合查询列的需要,又符合排序列的需要,这通常是一个矛盾。笔者前面“索引”的讨论中,将fariqi,即用户发文日期作为了聚集索引的起始列,日期的精确度为“日”。这种作法的优点,前面已经提到了,在进行划时间段的快速查询中,比用ID主键列有很大的优势。
  但在分页时,由于这个聚集索引列存在着重复记录,所以无法使用max或min来最为分页的参照物,进而无法实现更为高效的排序。而如果将ID主键列作为聚集索引,那么聚集索引除了用以排序之外,没有任何用处,实际上是浪费了聚集索引这个宝贵的资源。
  为解决这个矛盾,笔者后来又添加了一个日期列,其默认值为getdate()。用户在写入记录时,这个列自动写入当时的时间,时间精确到毫秒。即使这样,为了避免可能性很小的重合,还要在此列上创建UNIQUE约束。将此日期列作为聚集索引列。
  有了这个时间型聚集索引列之后,用户就既可以用这个列查找用户在插入数据时的某个时间段的查询,又可以作为唯一列来实现max或min,成为分页算法的参照物。
  经过这样的优化,笔者发现,无论是大数据量的情况下还是小数据量的情况下,分页速度一般都是几十毫秒,甚至0毫秒。而用日期段缩小范围的查询速度比原来也没有任何迟钝。聚集索引是如此的重要和珍贵,所以笔者总结了一下,一定要将聚集索引建立在:

1、您最频繁使用的、用以缩小查询范围的字段上;

2、您最频繁使用的、需要排序的字段上。

结束语

  本篇文章汇集了笔者近段在使用数据库方面的心得,是在做“办公自动化”系统时实践经验的积累。希望这篇文章不仅能够给大家的工作带来一定的帮助,也希望能让大家能够体会到分析问题的方法;最重要的是,希望这篇文章能够抛砖引玉,掀起大家的学习和讨论的兴趣,以共同促进,共同为公安科技强警事业和金盾工程做出自己最大的努力。
  最后需要说明的是,在试验中,我发现用户在进行大数据量查询的时候,对数据库速度影响最大的不是内存大小,而是CPU。在我的P4 2.4机器上试验的时候,查看“资源管理器”,CPU经常出现持续到100%的现象,而内存用量却并没有改变或者说没有大的改变。即使在我们的HP ML 350 G3服务器上试验时,CPU峰值也能达到90%,一般持续在70%左右。
  本文的试验数据都是来自我们的HP ML 350服务器。服务器配置:双Inter Xeon 超线程 CPU 2.4G,内存1G,操作系统Windows Server 2003 Enterprise Edition,数据库SQL Server 2000 SP3


 

2:05 | 评论 (0)