欢迎来到天天文库
浏览记录
ID:38165949
大小:122.91 KB
页数:6页
时间:2019-06-06
《timestamp类型与时区的关系及时区给数据库性能带来的影响》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、刚才在写timestamp类型的一个测试方法,想到timestamp跟时区的关系。因为平时基本不用这种类型,还真不知道。我们直接实验:SQL>DROPTABLETIMESTAMP_TEST;TabledroppedSQL>CREATETABLETIMESTAMP_TEST( 2 TIMEDATE,TIMESTPTIMESTAMP(3), 3 TIMESTP_TZTIMESTAMP(3)WITHTIMEZONE, 4 TIMESTP_LTZTIMESTAMP(3)WITHLOCALTIMEZONE);TablecreatedS
2、QL>SELECTDBTIMEZONE,SESSIONTIMEZONEFROMDUAL;DBTIMEZONESESSIONTIMEZONE-------------------------------------------------------------------------------------+00:00 +08:00SQL>INSERTINTOTIMESTAMP_TESTVALUES(SYSDATE,SYSDATE,SYSDATE,SYSDATE);1rowinsertedSQL>commit;Commitcomp
3、leteSQL>SELECT*FROMTIMESTAMP_TEST;TIME TIMESTP TIMESTP_TZ TIMESTP_LTZ-----------------------------------------------------------------------------------------------------------------------------5/6/20132:06-M
4、AY-1302.22.37.000PM 06-MAY-1302.22.37.000PM+08:00 06-MAY-1302.22.37.000PMSQL>ALTERSESSIONSETTIME_ZONE='+10:00';SessionalteredSQL>SELECT*FROMTIMESTAMP_TEST;TIME TIMESTP TIMESTP_TZ TIMESTP_LTZ
5、-----------------------------------------------------------------------------------------------------------------------------5/6/20132:06-MAY-1302.22.37.000PM 06-MAY-1302.22.37.000PM+08:00 06-MAY-1304.22.37.000PM我们看到,withlocaltimezone的timestamp字段会随时着时区的
6、变化而变化,由东八变东十,时间提前了2小时。说明TIMESTAMPWITHLOCALTIMEZONE会随着用户所在时区(SESSIONTIMEZONE)而变化,而TIMESTAMPWITHTIMEZONE则不随用户所在时区的变化而变,简单的说,这两个时间类型的参照时间不同,一个是参照用户的时区,一个是参照数据库的时区。不过时区对数据库的影响还是挺大的,顺手发下我2011年遇到的一个问题。以前某省的国网数据库白天的时候非常卡,查找原因。最后真没怀疑到时区导致的数据库超卡。下面是当时报告的一部分:经检查,发现数据库时区为西5区,即纽约时区:
7、SQL>SELECTDBTIMEZONEFROMDUAL;DBTIMEZONE-----------05:00SQL>SELECTSESSIONTIMEZONEFROMDUAL;SESSIONTIMEZONE----------+08:00虽然时区的设置有误不影响管控日常的运作,但却严重影响ORACLE自身的优化器统计信息收集功能。我们查找下dba_scheduler_job_log表(但dba_scheduler_jobs表报ORA-01882错误,需要修改日期格式),搜寻ORACLE以执行过的JOB信息,结果如下(7月21-7月31
8、日):LOG_DATEJOB_CLASSOWNERJOB_NAME2011-07-2111:00:02DEFAULT_JOB_CLASSSUCCEEDEDMGMT_CONFIG_JOB2011-07-211
此文档下载收益归作者所有