2011年11月30日水曜日

Oracle Index Partition and Corresponding Table Partition

Because of the ambigours specification of local index partitioning, I looked up Oracle Documentation and find some useful information.
 
 
 
 
local_partitioned_index 

The local_partitioned_index clauses let you specify that the index is partitioned on the same columns, with the same number of partitions and the same partition bounds as table. Oracle Database automatically maintains local index partitioning as the underlying table is repartitioned.


on_range_partitioned_table 

This clause lets you specify the names and attributes of index partitions on a range-partitioned table. If you specify this clause, then the number of PARTITIONclauses must be equal to the number of table partitions, and in the same order. If you omit partition, then Oracle Database generates a name that is consistent with the corresponding table partition. If the name conflicts with an existing index partition name, then the database uses the form SYS_Pn.

You cannot specify key compression for an index partition unless you have specified key compression for the index.


on_list_partitioned_table

The on_list_partitioned_table clause is identical to on_range_partitioned_table .


on_hash_partitioned_table 

This clause lets you specify names and tablespace storage for index partitions on a hash-partitioned table.

If you specify any PARTITION clauses, then the number of these clauses must be equal to the number of table partitions. If you omit partition, then Oracle Database generates a name that is consistent with the corresponding table partition. If the name conflicts with an existing index partition name, then the database uses the form SYS_Pn. You can optionally specify tablespace storage for one or more individual partitions. If you do not specify tablespace storage either here or in the STORE IN clause, then the database stores each index partition in the same tablespace as the corresponding table partition.

The STORE IN clause lets you specify one or more tablespaces across which Oracle Database will distribute all the index hash partitions. The number of tablespaces need not equal the number of index partitions. If the number of index partitions is greater than the number of tablespaces, then the database cycles through the names of the tablespaces.


on_comp_partitioned_table 

This clause lets you specify the name and tablespace storage of index partitions on a composite-partitioned table.

The STORE IN clause is valid only for range-hash composite-partitioned tables. It lets you specify one or more default tablespaces across which Oracle Database will distribute all index hash subpartitions. You can override this storage by specifying different tablespace storage for the subpartitions of an individual partition in the second STORE IN clause in the index_subpartition_clause.

For range-list composite-partitioned tables, you can specify default tablespace storage for the list subpartitions in the PARTITION clause. You can override this storage by specifying different tablespace storage for the list subpartitions of an individual partition in the SUBPARTITION clause of theindex_subpartition_clause.

You cannot specify key compression for an index partition unless you have specified key compression for the index.


index_subpartition_clause

This clause lets you specify names and tablespace storage for index subpartitions in a composite-partitioned table.

The STORE IN clause is valid only for hash subpartitions of a range-hash composite-partitioned table. It lets you specify one or more tablespaces across which Oracle Database will distribute all the index hash subpartitions. The SUBPARTITION clause is valid for subpartitions of both range-hash and range-list composite-partitioned tables.

If you specify any SUBPARTITION clauses, then the number of those clauses must be equal to the number of table subpartitions. If you omit subpartition, then the database generates a name that is consistent with the corresponding table subpartition. If the name conflicts with an existing index subpartition name, then the database uses the form SYS_SUBPn.

The number of tablespaces need not equal the number of index subpartitions. If the number of index subpartitions is greater than the number of tablespaces, then the database cycles through the names of the tablespaces.

If you do not specify tablespace storage for subpartitions either in the on_comp_partitioned_table clause or in the index_subpartition_clause, then Oracle Database uses the tablespace specified for index. If you also do not specify tablespace storage for index, then the database stores the subpartition in the same tablespace as the corresponding table subpartition.


2011年11月29日火曜日

Re: 导致ECSHOP百度收录少或者不收录原因

函数大全
 
 
 
ECSHOP数据库结构参数表.pdf
ECShop开发资料.pdf
ECShop函数手册.doc
ecshop.chm
ECShop二次开发思想.pdf

Sent: Tuesday, November 29, 2011 2:02 PM
Subject: 导致ECSHOP百度收录少或者不收录原因

 
ECSHOP是一个非常优秀的商城程序,以丰富的模板、稳定开源、非常快的执行速度赢得广大网店主的青眯。今天早上一位网友,向我提出这样的问题。他的情况是用的ECSHOP2.62版的,新建站30多天,目前百度只收录了首页,而google收录正常。我检查了他的网站一切正常,没有任何违规舞弊的手段和做法。类似这位网友的情况很多,那为什么ECSHOP网店系统百度收录少或者百度不收录呢?
      排除算法改动和人为干预因素的影响,今天将尽可能详细的为大家分析"ECSHOP百度收录少或者不收录"的原因。
最大的原因是用ECSHOP做网站的同行,选用相同免费模板的机率非常大,这也就造成内容相似度非常高,从页影响到百度收录。 

网站图片内容多,实际上每一页的文字很少。(大多用ECSHOP做站的朋友可能把重点都放到了商品自身的优化,而忽视文字内容的比例。)因搜索引擎不能识别图片内容,所以它更乐意收录欢原创文章文字内容多的页面。看了"ECSHOP百度收录少或者不收录原因"一文后,朋友们可以看看你网站的是否有这种情况。 

没有意义的程序文件页面和重复页面影响收录。(比如:查看购物车页面,搜索页面,订阅页面等)可以通过robots.txt屏避。 

ECSHOP程序文件category.php及goods.php等页面多处存在类似以下这样的代码: 
/* 如果分类不存在则返回首页 */
ecs_header("Location: ./\n");
exit; 

以上代码的意思是,如果找不到当前ID下的分类或者商品,则跳转到网站首页。这样子跳转,返回的HTTP代码将会是302,表明此页面信息暂时性转移。(这类跳转代码很容易引起搜索引擎封杀,有能力的朋友,可以做301跳到单独的页面。)
修改方法: 最简单的方法是让它返回404错误页面,即把

ecs_header("Location: ./\n");
exit; 
改为:

header("HTTP/1.0 404 Not Found");
exit; 

Title标签关键字结构不合理,点击认识ECSHOP默认的SEO特性,理想的Title应该是可以自定义的。
ECSHOP百度收录少或不收录原因主要影响的因素基本就是这几点,未描述清楚的地方还请朋友们留言补充,一起讨论。下篇文章将针对以上几点,系统的提供可行性的解决方案,朋友们过通过ECSHOP SEO教程分类,获得ECSHOP SEO文章的更新。
 

导致ECSHOP百度收录少或者不收录原因

 
ECSHOP是一个非常优秀的商城程序,以丰富的模板、稳定开源、非常快的执行速度赢得广大网店主的青眯。今天早上一位网友,向我提出这样的问题。他的情况是用的ECSHOP2.62版的,新建站30多天,目前百度只收录了首页,而google收录正常。我检查了他的网站一切正常,没有任何违规舞弊的手段和做法。类似这位网友的情况很多,那为什么ECSHOP网店系统百度收录少或者百度不收录呢?
      排除算法改动和人为干预因素的影响,今天将尽可能详细的为大家分析"ECSHOP百度收录少或者不收录"的原因。
最大的原因是用ECSHOP做网站的同行,选用相同免费模板的机率非常大,这也就造成内容相似度非常高,从页影响到百度收录。 

网站图片内容多,实际上每一页的文字很少。(大多用ECSHOP做站的朋友可能把重点都放到了商品自身的优化,而忽视文字内容的比例。)因搜索引擎不能识别图片内容,所以它更乐意收录欢原创文章文字内容多的页面。看了"ECSHOP百度收录少或者不收录原因"一文后,朋友们可以看看你网站的是否有这种情况。 

没有意义的程序文件页面和重复页面影响收录。(比如:查看购物车页面,搜索页面,订阅页面等)可以通过robots.txt屏避。 

ECSHOP程序文件category.php及goods.php等页面多处存在类似以下这样的代码: 
/* 如果分类不存在则返回首页 */
ecs_header("Location: ./\n");
exit; 

以上代码的意思是,如果找不到当前ID下的分类或者商品,则跳转到网站首页。这样子跳转,返回的HTTP代码将会是302,表明此页面信息暂时性转移。(这类跳转代码很容易引起搜索引擎封杀,有能力的朋友,可以做301跳到单独的页面。)
修改方法: 最简单的方法是让它返回404错误页面,即把

ecs_header("Location: ./\n");
exit; 
改为:

header("HTTP/1.0 404 Not Found");
exit; 

Title标签关键字结构不合理,点击认识ECSHOP默认的SEO特性,理想的Title应该是可以自定义的。
ECSHOP百度收录少或不收录原因主要影响的因素基本就是这几点,未描述清楚的地方还请朋友们留言补充,一起讨论。下篇文章将针对以上几点,系统的提供可行性的解决方案,朋友们过通过ECSHOP SEO教程分类,获得ECSHOP SEO文章的更新。
 

2011年11月26日土曜日

Fw: zhai用AJAX跟踪Google Adsense广告点击

看到这个帖子,估计用好了挺有用的。先收藏下来。

功能

  1. 可以完整详细地获得每一个用户点击广告的数据。包括点击时间用户的IP页面来源地址被点击的广告网站地址,如果你的站点上保存了用户cookie的话,甚至可以查询到是哪位用户点了你的广告
  2. 用纯客户端javascript代码和AJAX技术实现点击监听和向服务端发送点击数据,服务端我用的是ASP脚本,只是用来保存点击数据和提供浏览器端的点击查询,可以更换为其他服务端脚本,如PHP,JSP等
  3. 数据保存方式为了简单,我用纯text文本保存,一行保存一条数据,数据字段用逗号分隔,这样方便用户将这个文本另存为csv格式,csv就能用excel打开了。
  4. 查看广告点击数据可设访问密码

安装和使用

  1. 下载这个文件解压出里面的adLog.asp文件
  2. 用记事本打开adLog.asp找到如下几行:
    Const TextFile = "adLog.txt" '保存点击数据的text文件,是相对路径,可以修改
    Const AccessPassword = "adLog" '查看点击时的访问密码,可以自行设定,如果无需身份认证,请将AccessPassword值改为""即可
    Const SessionName = "google_ad_logger" 'Session名称,用来保存访问密码到指定Session中
    Const WebCharset = "utf-8" '网站的编码类型,如果是GB-2312,请自行修改
    Const UserName = "username" '用户名cookie,如果你的站没有用户cookie,就不用管了
    可以根据自己实际需要修改其值
  3. 修改完毕后将文件上传到你的web站点上,任何路径下都可以。这里注意:如果你的编码是gb-2312,请将文件用记事本打开,并选择另存为,将编码改回为ANSI。
  4. 修改你投放了google广告的页面文件,将以下代码插入你的页面任意位置:
    <script language="javascript" type="text/javascript" src="http://www.example.com/adlog.asp?act=script"></script>
    将其中的页面路径修改为你自己实际的地址
  5. 安装完毕以后页面就自动开始跟踪广告点击了
  6. 查看点击数据你可以上ftp直接下载你指定的文本文件查看,或者访问http://www.example.com/adlog.asp

技术原理

其实这也不是什么高深技术,原理及其简单,主要核心功能都是在客户端javascript中。

  • 通过查看发现google的广告代码全部放在一个iframe中。所以首先通过document.getElementsByTagName("iframe")得到页面中所有iframe标签的元素集保存到一个数组中
  • 然后遍历数组检查iframe.src值是否包含有"googlesyndication.com"这串字符串,如果有就认为这个iframe是google的广告显示iframe
  • 得到google显示广告的iframe后给这个iframe增加一个onfocus事件,这个事件就是当元素获得焦点时触发的事件
  • 在onfocus事件中检查window.status的值,也就是状态栏显示的字符串,如果匹配"go to"和"键连至"这几个字符串就提取中网址地址,这个地址就认为是被点击的广告网址
  • 利用AJAX立即将用户的点击数据POST到服务端纪录下来,这里的AJAX无需再响应服务端传回的数据了,只管发送出去即可

 

几个核心代码

  • 编写过windows程序的朋友一定知道微软的Visual Stdio中包含有一个Spy的小工具,这个小工具中就有一个功能用来监听某个窗口句柄的所有触发事件,用起来很爽,我在写这个广告纪录器时也自己实现了一个网页上用的Spy,代码如下:
    <input type=text id=test><br />
    <textarea cols=80 rows=20 id=view></textarea>
    <script language="JavaScript">
    obj = document.getElementById("test");
    var v = document.getElementById("view");
    for (evt in obj)
    if (evt.substring(0,2)=="on")eval("obj."+evt+"=function(){v.value ='"+evt+"事件触发\\n'+v.value};");
    </script>
    我就是用这种方法查看iframe上触发的事件,查看后发现鼠标单击iframe时能接收到的事件中有onbeforeactivate、onactivate、onfocusin、onfocus这四个,我就挑了onfocus来监听用户点击的
  • ajax部分我用的是XHConn组件,小巧灵活简单,很好使。
  • 前面讲解安装时我特意说过包含js的代码可以放在网页的任意位置,这里我用的是一个称作domFunction的js组件,这个组件可以实现循环查询DOM对象,直到发现DOM装载入页面并有效后再执行代码,相当于document.onload事件的作用,google adsense的广告有时候会显示很慢,用了这个Dom检查程序就可以保证每次页面装载都能查找到google的iframe,万无一失,也方便了用户添加代码时无需考虑位置的影响了。
  • 按理,这个程序应该写成一个asp外加一个js两个文件,但是看了Andy兄介绍的单页面应用程序(Single Page Application这篇文章,很是欣赏,所以特意将两个文件合写到一个文件中了
  • 服务端保存和读取文本文件的内容时,我用的分别是FSO和ADODB.Stream,如果你的站点不支持这些组件,请和我联系,我改写其他方式

遗憾

  • 最遗憾的是这个程序只能用在IE下启作用,Firefox下无法跟踪用户点击操作,原因是Firefox中ifrmae根本触发不了任何用户操作事件,去Mozilla上查看资料,官方说明了用document.getElementById("iframe").contentWindow这个对象,但是我尝试后还是毫无作用,只好作罢,等待高人解决。
  • 最惭愧的是我怎么也找不到在onfocus事件中判断用户鼠标左右键的方法,在iframe上点击鼠标右键也会触发事件的,程序会被认为一次有效的用户点击,这个问题一定要改改的。

Demo和下载

如果想立即查看下程序实际运行,我特意提供了一个demo文件:http://www.duduwolf.com/test/adLogDemo.asp,这个文件没有设访问密码,任何人都能查看点击数据,你也可以通过装载<script language="javascript" type="text/javascript" src="http://www.example.com/adlog.asp?act=script"></script>这串代码立即从你的网站上实现点击跟踪,只不过点击后的数据是保存在我的网站上并且是公开的。
下载源文件:Google Adsense Click Logger
在线查看源代码:查看源代码(utf-8,如果显示乱码请修改当前页面编码)

这个程序我自己用了好几天了,迟迟没有发布出来就是担心大量应用后google估计就会修改google adsense代码了,还有就是我不知道这样做是不是违背了google广告的保留条款,仔细查看后发现有这样一条

Google 严禁以任何手段人为提高点击次数或网页展示次数,并通过工程系统和人工分析对行为进行密切监控。

 

所以希望大家只是拿来当技术研究,切勿长时间靠这个跟踪客户点击,虽然目前这个程序不影响任何adsense投放和点击后的动作和行为,但是如果有一天google的工作人员亲自上你的站点研究代码就全暴露了。我blog上的数据也统计了好几天,基本和google提供的统计数据差不多,因为我的blog上有用户留言的cookie,所以我特意保存了用户名,想看看每天都是谁在点击我的广告,统计后发现点击我广告的人都没在blog中留言,在blog中留言保存了cookie的用户从来不点击广告

分类: Ajax

2011年11月25日金曜日

Fw: 夕子:淑女范儿

夕子:淑女范儿
http://bbs.creaders.net/life/bbsviewer.php?trd_id=643954&blog_id=97448

送交者: 夕子 2011年11月23日19:10:29  [五 味 斋]
       
 4271382771584870123.jpg

上周我在Bayview Village 和一个标准淑女饮下午茶,因为不太熟悉地形迟到,找到那家意大利餐馆的时候,她已经静静地坐在餐厅外面长廊的小餐桌旁了。发梢带着一点微卷,淡淡的妆容, 随意一条几何图案的丝巾松松搭在胸前,棕色的牛皮长靴,质地考究的暗红色毛呢短大衣;白皙的手指轻轻握着白瓷镶墨蓝色金边的咖啡杯,说话声音轻轻柔柔,举 止优雅动人,让人如沐春风。

野丫头不禁在心底赞叹,真是淑女范儿,人到中年,四十多岁的年纪,混合少女的清新气质和成熟女性的优雅风范; 有如金秋一般,大气而丰美。

"野蛮女友"曾经风靡一时,现在的女孩子讲话声音跟吃饭速度一样,快准狠;响亮而快速。那种优美温柔的气质和 轻柔贤淑的言谈好像变成过气的花瓶,被束之高阁。在大庭广众之下猛然发威、河东狮吼;小肚鸡肠,斤斤计较,骨里挑刺,年纪轻轻脏话连篇毒舌诋毁无所不能。 记得《山楂树之恋》的时候全国海选静秋的饰演者,连续十几天都无一人合适,让选角的导演都大叹现在找个具有淑女气质的纯真女孩不是百里挑一,简直就是几万 里挑一。

淑女养成一半是良好的家教,一半是外界的影响。现在野丫头还记得小时候吃饭的家规:必须要背挺直,吃饭的时候要双手放在桌上;只 可以夹你面前盘子里靠近你这一侧的菜不可以拿着筷子东挑西捡;不可以吧唧嘴,双腿并拢,不可松松垮垮。人家为你盛饭一定要双手去迎接,喝汤或吃面条的时候 要小口不能发出响亮的声音。嘴里含着饭的时候不能讲话,人家说话的时候要微笑,留意听,不能抢话或者中途打断别人。还有一些小家规诸如,和男孩子交往,不 可收别人贵重的礼物,如果人家请客一定要回请,要礼貌地感谢。去人家里作客一定要带小礼物赠送等等。这些淑女养成守则从5、6岁开始一直到现在,都受益匪 浅。

我心目中的淑女,除了言谈举止的淑女范儿之外,还必须要有非常宽容和大气的性格。和她们交流,从来都不会觉得压抑;她会尊重你的选择 和意愿,也认可你的生活方式;不会一惊一乍,对你说过任何事情都表示理解并轻描淡写地化开你的尴尬。她很有智慧,每做一件事、每说一句话首先要考虑这样做 是否伤害别人,怎样才不失淑女通达的本色。她懂得和不同类型的人交流,不会让你觉得生疏,热情大方,真诚,让你慢慢敞开心扉。小时候读过一句话,好女人就 是一所学校。所谓淑女范儿正是如此,和她交往的过程中,你的人生都会不断提升,她会温柔而善意地提醒你的不足和缺点,帮助你做得更好。她也会鼓励你,给你 前进的动力和勇气。

还有很重要的一点就是不娇气,不做作,简单大方。和农民在一起可以卷起裤脚站在泥水里一起做农活爽朗大笑;去郊外露营 的时候搭帐篷生火烤肉,袖子一挽就上,眉头都不带皱一下的;帮朋友搬家挥汗如雨,勤心尽力;深更半夜去机场接朋友一点都不抱怨。在各个场合穿着举止得体大 方,亦庄亦谐,让人舒心。对待朋友不温不火,珍惜友情、善待家人、懂得经营爱情。

淑女范儿,就如山间微风,让你的脚步轻盈;给你正面的力 量和阳光,让你觉得每一天的人生,都充满了希望。


[e-Commerce][ecshop]ecshop相关资料(更新)

[e-Commerce][ecshop]ecshop相关资料