posts - 104,  comments - 34,  trackbacks - 0

我的评论

re: 时间控件(可含时分秒) 末日风情 2011-07-07 20:28  
@z
请使用最新版本。
http://www.my97.net/dp/index.asp
re: 快速访问Map的方法 末日风情 2009-09-27 13:40  
public static void main(String[] args) {
Map cacheResult = new HashMap();
cacheResult.put("A", "a");
cacheResult.put("B", "b");
cacheResult.put("C", "c");
Set entries = cacheResult.entrySet();
for (Iterator it = entries.iterator(); it.hasNext();) {
Map.Entry entry = (Map.Entry) it.next();
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println(key + "---" + value);
}
}
truncate,delete,drop的异同点 末日风情 2009-06-18 12:46  
注意:这里说的delete是指不带where子句的delete语句

相同点:truncate和不带where子句的delete, 以及drop都会删除表内的数据
不同点:
1. truncate和 delete只删除数据不删除表的结构(定义)
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.
truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.
3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动
显然drop语句将表所占用的空间全部释放
truncate 语句缺省情况下将空间释放到 minextents个 extent,除非使用reuse storage; truncate会将高水线复位(回到最开始).
4.速度,一般来说: drop> truncate > delete
5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及
使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.
想删除表,当然用drop
想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete.
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据
Oracle 中truncate与delete的区别 末日风情 2009-06-18 12:46  
1、 在功能上,truncate是清空一个表的内容,它相当于delete from table_name。
2、delete是dml操作,truncate是ddl操作;因此,用delete删除整个表的数据时,会产生大量的roolback,占用很多的rollback segments, 而truncate不会。
3、在内存中,用delete删除数据,表空间中其被删除数据的表占用的空间还在,便于以后的使用,另外它是“假相”的删除,相当于windows中用delete删除数据是把数据放到回收站中,还可以恢复,当然如果这个时候重新启动系统(OS或者RDBMS),它也就不能恢复了!
而用truncate清除数据,内存中表空间中其被删除数据的表占用的空间会被立即释放,相当于windows中用shift+delete删除数据,不能够恢复!
4、truncate 调整high water mark 而delete不;truncate之后,TABLE的HWM退回到 INITIAL和NEXT的位置(默认)delete 则不可以。
5、truncate 只能对TABLE,delete 可以是table,view,synonym。
6、TRUNCATE TABLE 的对象必须是本模式下的,或者有drop any table的权限 而 DELETE 则是对象必须是本模式下的,或被授予 DELETE ON SCHEMA.TABLE 或DELETE ANY TABLE的权限。
7、在外层中,truncate或者delete后,其占用的空间都将释放。
8、truncate和delete只删除数据,而drop则删除整个表(结构和数据)。
Oracle中存储过程和Sql语句的优化重点 末日风情 2008-07-29 09:14  
1.全表扫描和索引扫描
大数据量表尽量要避免全表扫描,全部扫描会按顺序每条记录扫描,对于>100万数据表影响很大。
Oracle中通过RowID访问数据是最快的方式
对字段进行函数转换,或者前模糊查询都会导致无法应用索引而进行全表扫描
对Oracle共享池和缓冲区中的Sql必须要大小写都完全用上才能够匹配上

2.顺序问题
Oracle按照从右到左的顺序对数据表进行解析。因此From最后面的表为基础表,一般要选择记录数最少的表作为基础表。
对于Where条件的顺序,过滤到最大查询记录数量的条件必须写在Where条件的结尾处。
Where条件中涉及到使用复杂函数判定的必须注意要写到Where条件的最前面

3.索引方面
记录数少的表保留有主键索引就可以了,不要再去建其它索引,全表扫描也很快
索引最好单独建立表空间,必要时候对索引进行重建
必要时候可以使用函数索引,但不推荐使用
Oracle中的视图也可以增加索引,但一般不推荐使用
*Sql语句中大量使用函数时候会导致很多索引无法使用上,要针对具体问题分析

4.其它
避免使用Select *,因为系统需要去帮你将*转换为所有的列名,这个需要额外去查询数据字典。
Count(1)和Count(*)差别不大。
多使用Decode函数来作简单的代码和名称间的转换,以减少表关联
使用Truncate替代delete来删除记录,但Truncate数据不记录日志,无法进行回滚
对于复杂的存储过程可以多次提交的数据的要多分多次Commit,否则长事务对系统性能影响很大
Distinct和Having子句都是耗时操作,应该尽可能少使用
在不需要考虑重复记录合并时候用Union All来代替Union
使用显性游标而不使用隐性游标,特别是大数据量情况下隐性游标对性能影响很大
是否使用函数的问题
用直接的表关联来代替Exist.用Exist或Not Exists来代理In。In进行子查询效率很差。

5.SQL语句分析
通过SQLPLUS中的SET TRACE 功能对Sql语句的性能进行分析
通过Toad或PL/SQL Developer对语句的性能进行和索引的使用情况进行分析
对Oracle缺省的优化不满意可以强制使用Hint,但一般不推荐使用
对Flag等只存储是或否信息的字段,一般不推荐建立索引。必要可以采用位图索引
*存在递归查询情况如果关联Table太多对性能会造成较大影响,往往推荐采用临时表转为分步骤操作提高性能
*尽量使用表关联查询而不使用函数,但涉及类似于代码表要重复关联多次取数据问题时候又适合使用函数
re: Onunload与Onbeforeunload 末日风情 2008-02-04 13:42  
onload //在页面加载完成后执行函数
onunload //在页面卸载时候执行函数
js中SetInterval与setTimeout用法 末日风情 2007-12-21 16:15  
JS里设定延时:

使用SetInterval和设定延时函数setTimeout 很类似。setTimeout 运用在延迟一段时间,再进行某项操作。

setTimeout("function",time) 设置一个超时对象
setInterval("function",time) 设置一个超时对象

SetInterval为自动重复,setTimeout不会重复。


clearTimeout(对象) 清除已设置的setTimeout对象
clearInterval(对象) 清除已设置的setInterval对象
屏蔽退格删除键,屏蔽F5 刷新键,Ctrl+R 末日风情 2007-12-14 13:37  
<body onkeydown="KeyDown()">

<script language=javascript>

function KeyDown()
{
//屏蔽退格删除键,屏蔽 F5 刷新键,Ctrl + R
if ((event.keyCode==116)||(event.ctrlKey && event.keyCode==82))
{
event.keyCode=0;
event.returnValue=false; //为什么还要加上这一句
}

</script>
windows.open()参数列表 末日风情 2007-12-14 12:05  
<SCRIPT LANGUAGE="javascript">
  <!--
  window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //这句要写成一行
  -->
  </SCRIPT>
  
  参数解释:
  
  <SCRIPT LANGUAGE="javascript"> js脚本开始;
  window.open 弹出新窗口的命令;
  'page.html' 弹出窗口的文件名;
  'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替;
  height=100 窗口高度;
  width=400 窗口宽度;
  top=0 窗口距离屏幕上方的象素值;
  left=0 窗口距离屏幕左侧的象素值;
  toolbar=no 是否显示工具栏,yes为显示;
  menubar,scrollbars 表示菜单栏和滚动栏。
  resizable=no 是否允许改变窗口大小,yes为允许;
  location=no 是否显示地址栏,yes为允许;
  status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;
  </SCRIPT> js脚本结束
indexOf方法 末日风情 2007-11-14 13:38  
indexOf 方法
返回 String 对象内第一次出现子字符串的字符位置。

strObj.indexOf(subString[, startIndex])

参数
strObj

必选项。String 对象或文字。

subString

必选项。要在 String 对象中查找的子字符串。

starIndex

可选项。该整数值指出在 String 对象内开始查找的索引。如果省略,则从字符串的开始处查找。

说明
indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回 -1。

如果 startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。

从左向右执行查找。否则,该方法与 lastIndexOf 相同。

示例
下面的示例说明了 indexOf 方法的用法。

function IndexDemo(str2){
var str1 = "BABEBIBOBUBABEBIBOBU"
var s = str1.indexOf(str2);
return(s);
}

典型问题以及解决办法 末日风情 2007-10-31 20:04  
1. 点击年份,月份下拉的时候显示 ?/td>
答:请下载3.0.1版本

2. 多框架时,其他框架里点的链接替换了本页,时间框不会消失
答:请下载3.0.1版本

3.在ff下,看着是正常的,但在错误查看器里每点击一次,就会记一个错误,错误地址是:错误: this.win.attachEvent is not a function
源文件:file:///F:/My97DatePicker3.0/My97DatePicker3.0/My97DatePicker/WdatePicker.js
行:128
答:请下载3.0.1版本

4.在showModalDialog窗口中使用时,会打不开窗口,系统提示:无法打开internet站点 。。。。。已终止操作
答:完全可以使用的
IE7中没有注意点
IE6中使用时,如果有 base target标签 必须在日期控件载入后设置

<script language="javascript" type="text/javascript" src="../My97DatePicker/WdatePicker.js"></script>
<base target="_self" />

5.maxdate 和 自定义日期new WdatePicker(this,'%Y年%M月',false,'whyGreen'),会报日期格式错误,感觉是maxdate格式是类似2007-07-03而自定义不等同这个
答:MAXDATE 和 MINDATE 的格式和自定义日期的格式是不一样的,MAXDATE 和 MINDATE 的格式可以在config.js里面设置对应的参数是 dpcfg.realValueShortFmt

6.starttime定义了 maxdate="#F{$('endtime').value}" 动态定义最大值,根据endtime来获得的,endtime这栏我设当前日期为最大值,可是当我endtime没选择时为空,starttime就没有限制了,所以我想问的是当我动态starttime 最大值时,能不能给个初始值
答:= #F{} 是自定义函数,他可以实现你想要的所有功能,不过你得懂点JS了,还要懂点脑子,像你刚刚所说的功能其实可以这样实现(假设默认值是2007-7-1,当然你也可以用JS的日期函数取得动态日期,如今天等) #F{if($('endtime').value!='') return $('endtime').value else return '2007-7-1';}

7:在母版页只要加入MAXDATE和MINDATE属性就报错,错误信息是: obj为空或不是对象
答:这是问题是因为使用了母板页之后它的ID和ClientID是不一样的,这就导致取$('id').value的时候,js找不到这个ID对象,解决办法是在初始化的时候使用ClientID。
如:Text1.Attributes["MAXDATE"] = "#F{$('"+Text2.ClientID+"').value}";
或者你也可以用<%=Text2.ClientID%>的形式,把代码写在aspx文件里面

<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(4)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜