??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品综合久久,亚洲国产日产无码精品,久久亚洲春色中文字幕久久久http://www.tkk7.com/wealupa/archive/2010/07/06/325373.html常言W?/dc:creator>常言W?/author>Tue, 06 Jul 2010 07:54:00 GMThttp://www.tkk7.com/wealupa/archive/2010/07/06/325373.htmlhttp://www.tkk7.com/wealupa/comments/325373.htmlhttp://www.tkk7.com/wealupa/archive/2010/07/06/325373.html#Feedback0http://www.tkk7.com/wealupa/comments/commentRss/325373.htmlhttp://www.tkk7.com/wealupa/services/trackbacks/325373.html阅读全文

]]>
Sql server 2005 版本http://www.tkk7.com/wealupa/archive/2008/04/25/195808.html常言W?/dc:creator>常言W?/author>Fri, 25 Apr 2008 01:25:00 GMThttp://www.tkk7.com/wealupa/archive/2008/04/25/195808.htmlhttp://www.tkk7.com/wealupa/comments/195808.htmlhttp://www.tkk7.com/wealupa/archive/2008/04/25/195808.html#Feedback0http://www.tkk7.com/wealupa/comments/commentRss/195808.htmlhttp://www.tkk7.com/wealupa/services/trackbacks/195808.htmlSQL2005 分五个版本,如下所列, 
    1.Enterprise(企业?, 
    2.Development(开发版), 
    3.Workgroup,(工作版) 
    4.Standard,(标准? 
    5.Express.

    单的比较一?Enterprise, Development ?Express {三个版?以功能言QEnterprise 版和 Development 版的功能一模一栗两者的差别Q除了授权不同外Q最主要的差别是: 

    Enterprise版的数据库引擎只能安装在Win2003Server(或其他Server)?nbsp;

    如果你想安装在WindowsXP Propȝ上,你应该安装SQL2005Development?开发版)?nbsp;

    什么是「数据库引擎」。数据库引擎是SQL2005的核心,是最主要的数据库理功能模块。没有它Q就不是数据库管理系l了?/p>

    因此Q如果你是初学者,如果你只是想要在安学习学习Q如果你的环境是 WindowsXP ProQ那么,你应该选择的是 SQL2005Development(开发版)Q而不是SQL2005Enterprise(企业?或SQL2005Express(易版)?br />


    以在生环境中用所有版本的 SQL Server 2005Q但 SQL Server 2005 Developer Edition ?SQL Server 2005 Evaluation Edition 除外。以下段落介l?SQL Server 2005 的多个版本?
SQL Server 2005 Enterprise EditionQ?2 位和 64 位)

Enterprise Edition 辑ֈ了支持超大型企业q行联机事务处理 (OLTP)、高度复杂的数据分析、数据仓库系l和|站所需的性能水^。Enterprise Edition 的全面商业智能和分析能力及其高可用性功能(如故障{Uȝ集)Q它可以处理大多数关键业务的企业工作负荗Enterprise Edition 是最全面?SQL Server 版本Q是大型企业的理想选择Q能够满x复杂的要求?/p>

SQL Server 2005 Evaluation EditionQ?2 位和 64 位)

SQL Server 2005 q推Z适用?32 位或 64 位^台的 180 ?Evaluation Edition。SQL Server Evaluation Edition 支持?SQL Server 2005 Enterprise Edition 相同的功能集。可以根据生产需要升U?SQL Server Evaluation Edition?/p>

SQL Server 2005 Standard EditionQ?2 位和 64 位)

SQL Server 2005 Standard Edition 是适合中小型企业的数据理和分析^台。它包括电子商务、数据仓库和业务解x案所需的基本功能。Standard Edition 的集成商业智能和高可用性功能可以ؓ企业提供支持其运营所需的基本功能。SQL Server 2005 Standard Edition 是需要全面的数据理和分析^台的中小型企业的理想选择?/p>

SQL Server 2005 Workgroup EditionQ仅适用?32 位)

对于那些需要在大小和用h量上没有限制的数据库的小型企业,SQL Server 2005 Workgroup Edition 是理想的数据理解决Ҏ。SQL Server 2005 Workgroup Edition 可以用作前端 Web 服务器,也可以用于部门或分支机构的运营。它包括 SQL Server 产品pd的核心数据库功能Qƈ且可以轻村֜升?SQL Server 2005 Standard Edition ?SQL Server 2005 Enterprise Edition。SQL Server 2005 Workgroup Edition 是理想的入门U数据库Q具有可靠、功能强大且易于理的特炏V?/p>

SQL Server 2005 Developer EditionQ?2 位和 64 位)

SQL Server 2005 Developer Edition 允许开发h员在 SQL Server 剙生成Mcd的应用程序。该应用E序包括 SQL Server 2005 Enterprise Edition 的所有功能,但许可用作开发和试pȝQ而不用作生服务器。SQL Server 2005 Developer Edition 是独立Y件供应商 (ISV)、咨询h员、系l集成商、解x案供应商以及生成和测试应用程序的企业开发h员的理想选择。可以根据生产需要升U?SQL Server 2005 Developer Edition?/p>

SQL Server 2005 Express EditionQ仅适用?32 位)

SQL Server Express 数据库^台基?Microsoft SQL Server 2005。它也可以替?Microsoft Desktop Engine (MSDE)。通过?Microsoft Visual Studio 2005 集成QSQL Server Express 化了功能丰富、存储安全且部v快速的数据驱动应用E序的开发过E?/p>

SQL Server Express 是免费的Q可以再分发Q受制于协议Q,q可以充当客L数据库以及基本服务器数据库。SQL Server Express 是独立Y件供应商 ISV、服务器用户、非专业开发h员、Web 应用E序开发h员、网站主机和创徏客户端应用程序的~程爱好者的理想选择。如果需要更多的高数据库功能,可将 SQL Server Express 无缝升到更复杂?SQL Server 版本?/p>

SQL Server Express q提供了一些附加组Ӟq些lg都作为具有高U服务的 Microsoft SQL Server 2005 Express Edition (SQL Server Express) 的一部分提供。除?SQL Server Express 的功能外Q具有高U服务的 SQL Server Express q包括以下功能:

  • SQL Server Management Studio Express (SSMSE)QSQL Server Management Studio 的子集?br />
  • 支持全文目录?br />
  • 支持通过 Reporting Services 查看报表?br />
SQL Server 2005 Mobile EditionQ仅 32 位)

SQL Server Mobile 是简版数据库Q将企业数据理功能扩展到小型设备上。SQL Server Mobile 能够复制 Microsoft SQL Server 2005 ?Microsoft SQL Server 2000 的数据,q且允许用户l护与主数据库同步的Ud数据存储。SQL Server Mobile 是唯一为智能设备提供关pL据库理功能?SQL Server 版本?/p>

SQL Server 2005 Runtime EditionQ?2 位和 64 位)

SQL Server 2005 Runtime Edition ?Microsoft ISV Royalty Program 提供。根?SQL Server 2005 Runtime Edition 的最l用戯可协议,如果用户不?SQL Server 代码q行M其他应用E序或者在M其他上下文中使用 SQL Server 代码Q独立Y件供应商 (ISV) 可能?SQL Server 代码嵌入C们提供的解决Ҏ中。关?SQL Server Runtime Edition 的详l信息,请参?Microsoft 知识库中的文?a onclick="javascript:Track('ctl00_LibFrame_ctl02|ctl00_LibFrame_ctl03',this);" >如何获取 SQL Server Runtime 许可?/a> (http://support.microsoft.com/kb/917400)?br />
注意点:

 在XP上不能安?Enterprise 版本Q?br />
 Express版本只能在本地访问,不能q行q程讉K?br />
 Express版本q接旉要在q接字符串中?***\SQLExpress

 Developer版本可以q行q程讉KQ记住要启用TCP/IPq接Q同时要讄好防火墙



]]>
数据仓库初探http://www.tkk7.com/wealupa/archive/2007/06/26/126314.html常言W?/dc:creator>常言W?/author>Tue, 26 Jun 2007 05:11:00 GMThttp://www.tkk7.com/wealupa/archive/2007/06/26/126314.htmlhttp://www.tkk7.com/wealupa/comments/126314.htmlhttp://www.tkk7.com/wealupa/archive/2007/06/26/126314.html#Feedback0http://www.tkk7.com/wealupa/comments/commentRss/126314.htmlhttp://www.tkk7.com/wealupa/services/trackbacks/126314.html数据仓库的概?/font>
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合Q用于支持管理决{?br>1.面向主题Q不同于操作型数据库Q主题是个抽象概念,是指用户使用数据仓库q行决策时所兛_的重Ҏ面。涉及业务流E的Ҏ面面Q而不像操作型数据库一L互隔R?br>2.集成?/font>:操作型数据库通常与某些特定的应用相关Q而数据库往往怺独立Q他们是异构的。数据仓库是对原有的分散数据q行了整合,q行了数据类型{化,消除了数据中的不一致性?br>3.相对E_Q数据仓库是E_的,׃要做企业分析决策之用Q一般情况下被长期保留Q以备日后参考查询。而说他是相对E_的是因ؓQ数据仓库要保存历史信息Q以便反映某一事物的变化情况,作ؓ分析决策的原始资料,所以数据仓库必ȝ护历史信息,所以他是相对稳定的。Write once, read many times.
4.反映历史变化Q以支持分析决策Q由q去的发展历Eȝ律,从而对未来作出合理的预?/p>

数据仓库环境
1.ETLQ数据抽取、{化和载入
2.OLAPQOnLine Analytical Processing Engine
3.DSSQ决{支持系l?br>4.客户分析与报表工?/font>
5.其他数据攉和数据输出工?/font>

数据仓库的构?/font>
数据仓库大体可以分ؓ四个层次Q?br>数据源、数据管理与存储层、OLAP服务器和前端工具?br>1.数据?/font>Q他是数据仓库的基础Q位于数据仓库构架的最底层Q是数据仓库的数据源泉。包括各个业务处理子pȝ的信息?br>2.数据理与存储层Q是数据仓库的核心。数据仓库如何高效管理数据是区别与面向操作数据库的主要标准。完成按照主题管理数据,聚合数据存放于多l数据库中?br>3.OLAP服务?/font>Q对数据q行有效集成Q按多维模型予以l织?br>4.前端工具Q主要包括各U报表工兗查询工兗数据挖掘工L?/p>

有关ETL
数据q入数据仓库的过E一般都要经q抽取(extractedQ、{化(transformedQ和载入QloadedQ三个过E,q个q程被简UCؓETL。一般用现有工h实现ETL的过E?br>1.E:数据抽取?/font>在数据抽取的同时Q数据不能被修改。可以抽取的文g格式为:数据库对象,比如表可以整个地从源pȝ中导出。比如,MS SQL Server 2000的bcp "select * from Northwind..customers" queryout "D:temp.txt"? -c -p -U"sa" -P"sa"。抽取过Eؓ动态抽取,即目标有变化才抽取,不做无谓的工作而媄响效率。一U实现的办法是加时间戳Q另一U方法就是分别在不同的表中进行描q?br>2.T:数据转化?/font>卛_数据从一个系l{Ud另外一个系l中。顺序ؓQ源pȝ -> staging database -> 数据仓库 -> data mart。有三种方式Qa.flat files(无范? b.区分操作 c.使用交换分区?br>3.L:数据输入

其他

数据仓库不一定要用数据库来实?/p>

数据仓库不满第三范式,q且不满式,他只含有“键(keyQ?#8221;。(W一范式Q有主键Q主观上形象的看Q是W合常理的分cLl织Q第二范式:满W一范式Qƈ且所有除主键之外的列都与所有的主键有关p;W三范式Q满第二范式,q且所有除主键之外的列怺之间没有关系Q?/p>

]]>
实时数据库的?/title><link>http://www.tkk7.com/wealupa/archive/2007/06/26/126250.html</link><dc:creator>常言W?/dc:creator><author>常言W?/author><pubDate>Tue, 26 Jun 2007 01:23:00 GMT</pubDate><guid>http://www.tkk7.com/wealupa/archive/2007/06/26/126250.html</guid><wfw:comment>http://www.tkk7.com/wealupa/comments/126250.html</wfw:comment><comments>http://www.tkk7.com/wealupa/archive/2007/06/26/126250.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/wealupa/comments/commentRss/126250.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/wealupa/services/trackbacks/126250.html</trackback:ping><description><![CDATA[<div id="3zbx79z" class=postText>关系数据库用得比较q,为大部分人所熟悉Q以至于谈到数据库,~省情况下指的就是关pL据库Q但实际上还有一些其他种cȝ数据库在生生活中被q泛使用Q比如我谈到的实时数据库,它们用在要求非常严格、数据量非常大的生工控中?br><br>当今国际国内q泛使用的实时数据库只有三个产品Q?br>a. 国OSI公司?PI ( Plant Information System )<br>b. 国HONEYWELL公司?PHD ( Process History Database )<br>c. 国AspenTech公司?IP21 ( InfoPlus .21 )<br><br>q些实时数据库的h是非常昂늚Q以百万人民币ؓ单位Q但是它们不全是以套也不全是以点(可容U的数据?为单位来出售Q所以无法数字化的比较其h。因为工作的关系Q我有幸能接触到q三U数据库Q在此对它们做一个比较?br><br>1. PI<br>采用了旋转门压羃专利技术和独到的二ơ过滤技术,使进入到PI数据库的数据l过了最有效的压~,极大地节省了盘I间。据计算Q每U?万点数据存储一q_仅需?G的空_即一只普通硬盘也可存贮五到十q的数据。是效率最高,使用最单,使用最q泛的实时数据库Q因为其杰出的性能QPI已经多次提高了它的h|实不坠OSI的名P而且PI在其文中公开了她的各U算法,比如上面提到的旋转门压羃和二ơ过滤?br><br>2. PHD<br>HONEYWELL占据了DCS大部分䆾额,因此PHD使用得也比较q泛QPHD在内部其实用了Oracle关系数据库,因此购买PHD必d购买Oracle。因?PHD内部使用Oracle化了开发量 ?Oracle的性能限制比较严重Q所?PHD 的h格在q三U数据库最低,不上正宗的实时数据库。但不要以ؓPHD内部使用Oraclep为Oracle很强Q如果直接用OracleQ只要两三秒的时_巨大的数据量׃令它崩溃。HONEYWELL其志不在实时数据库这一块,而是她的DCS?br><br>3. IP21<br>IP21基本上还未进入中国市场,它正在通过先期赠送的办法打开中国市场?br>在评价IP21之前Q我需要先x“我对IP21的看法只是个人看法,不是M产品的托?#8221;?br>IP21是我见过的最差的关系数据库,也是我见q的最差的一个YӞ<br>a. 其Y件的安装E序的运行需要一个硬狗,q种气的做法和PI公开法的做法没法比Q问题还在于它的q条狗经怼ȝ?br>b. 其Y件的安装即是其公司的专业员工也不能保证安装成功Q?0台计机让它的专业员工来安装大约只能成功一两台?br>c. 其Y件的安装盘只有一张,但这一张盘需要安装四个小时以上,中途不停地看到在安装某个版本的Java解释器,其后它们又被删除?br>d. 没有实现真正的自动安装,在安装之前它们的工程师需要在计算Z修改不少的文件?br>e. 安装中途如果出现错误是不立x告的Q需要四个小时之后安装完毕才能看到安装失败的字样Q但也仅仅只能知道安装失败,不知道在哪一步安装失败?br>f. 理l护软g非常的复杂,除非有h愿意牺牲以后的前途来学习它,否则只能让它自q员工来鼓弄?br>g. q行效率非常低下Q而且占用pȝ资源非常严重Q一台服务器只能l一个IP21使用?br><br>实时数据库的讉K方式<br>a. 使用自己的APIQ这U方式效率最高,其实也最单?br>b. 使用ODBCQ这U方式其实没有多大作用,因ؓ实时数据库不同于关系数据库,ODBC没有太大的用武之圎ͼ所以在使用ODBC时有非常多的限制Q大部分功能q不支持ODBC方式?br>c. 使用OPC方式QOLE for Process ControlQ?br>  因ؓ太多的数据库和DCS使用自己的API方式存取数据Q无法做到算法的通用Q因为提Z一个标准的存取接口Q这是OPCQ如今有过两百家商加入到OPCl织中,声势大Q包括臭名昭著的M$Q之所以讲M$臭名昭著是因为M$强制性的在这个标准的存取接口中用了COM/DCOMQoOPC只能在windows下用,且效率(因ؓ是工控场合,所以效率非帔R要)低下。M$在OPCl织中非常的U极Q所以现在的OPC基本上也q了当初制定的目标Qo很多产商不满Q包括OSI在内Q虽然OSI PI提供OPC接口Q但OSI不徏议客户用它Q也不对它进行技术支持。在OPC中的COMq有另外一个大问题Q因为COM规定必须支持先前制定的接口,而工控要求又非常严格Q开发测试的费用和时间都非常高,没有M厂商愿意支持先前的COM接口Q因此没有真正符合COM标准的OPC?nbsp; </div> <div id="xxhbl1x" class=postText></div> <div id="dlzdrlp" class=postText>1. OSIsoft正在淡化PI的概念,严格来说2000q后PI׃叫实时数据库了,现在OSIsoft推出的是实时企业化解x案RtPMQPI实时历史数据引擎是RtPM中RtBaseline的一部分。只是国内现在看来还没到那个阶段:) 国内电力行业用PI作ؓ企业实时数据库的比较多,矛_用的不多Q其他行业就更少了,主要q是一些合资企业带q来的。PI的h格其实一直比较稳定,面向的是高端客户,若比较性能h比的话,PI明显优于PHD和IP.21Q变来变ȝ是OSIsoft在中国的政策。OSIsoft是OPC基金会的成员Q主要在OPC内部制定HDA的标准,没有听说qOSIsoft不支持OPC接口,OSIsoft的OPC接口是其版本更新速度最快的一个接口?<br><br>2. Honeywell曄是OSIsoft公司最大的集成商,80q代?0q代初期Q通过Honeywell销售的PI比OSIsoft自己销售的PIq多。Honeywell现在卖PHD的目的不是帮助DCS的销售,而是Honeywell在石化行业的信息解决ҎQ如APC{需要一个实时数据^台的支撑Q靠卖PHDQHoneywell是不能存zȝQ事实上用户如果买Honeywell的APC{应用,PHD可以免费Q不q羊毛出在羊w上Q再说要是用了PHDQ最好就一直买Honeywell的高U应用了?<br><br>3. Aspentech的IP.21和Honeywell的PHD定位一P靠卖IP.21,Aspentech也活不了。Aspentech产品U很长,几乎都是靠收购来的品,买来后整合难度很大。IP.21也是Aspentech买来的品,原来是SetPoint公司的品,现在IP.21l护更新的开发队伍也几个hQ没准哪天IP.21赔的太多Q这个部门就砍了?<br><br>ȝQOSIsoft卖PI赢利Q在实时数据处理斚w是越来越专,来深。Honeywell和Aspentech卖PHD和IP.21赔本Q现在在实时数据库技术上吃老本Q商务上是能黑就黑一把,最好是C们的一体化解决ҎQ永q上他们的贼舏V?</div> <img src ="http://www.tkk7.com/wealupa/aggbug/126250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/wealupa/" target="_blank">常言W?/a> 2007-06-26 09:23 <a href="http://www.tkk7.com/wealupa/archive/2007/06/26/126250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>db2C用帮助ȝhttp://www.tkk7.com/wealupa/archive/2007/06/13/123778.html常言W?/dc:creator>常言W?/author>Wed, 13 Jun 2007 01:52:00 GMThttp://www.tkk7.com/wealupa/archive/2007/06/13/123778.htmlhttp://www.tkk7.com/wealupa/comments/123778.htmlhttp://www.tkk7.com/wealupa/archive/2007/06/13/123778.html#Feedback0http://www.tkk7.com/wealupa/comments/commentRss/123778.htmlhttp://www.tkk7.com/wealupa/services/trackbacks/123778.html一.数据定义语言(DDL)
      1、用create语句创徏数据库对?包括[~冲?Buffer pool), 事g监视?Event monitor), 函数(Function), 索引(Index), 模式(Schema), 存储q程(Stored procedure), ?Table), 表空?Table space), 触发?Trigger), 视图(View)], 例如:
CREATE TABLE T_CI_YCLLRDZ
(
   FD_YCLLRDZ_ID      
CHAR(35)               NOT NULL,
   FD_CIYGBH                 CHA
RACTER(20),
   FD_CJYGMC              
CHARACTER(50),
   FD_WZYGBH            
CHARACTER(20),
   FD_WZYGMC           
CHARACTER(50),
   
CONSTRAINT P_KEY_1 PRIMARY KEY (FD_YCLLRDZ_ID)
);
     2、创Z时表, declare语句创徏表的时候于create相同, 只不qdeclare创徏的是临时? 例如
Declare GLOBAL TEMPORARY TABLE session.temp1 like employee on commit PRESERVE ROWS NOT LOGGED IN mytempspace

q个语句用来声明一个时表,表明为temp1, 位于现有的表I间mytempspace?q个表空间必d?, 和employee表结构一模一? 每当处理commit语句?临时表的行就会被保存下来(不会被删?, 最后对临时表的修改不用记入日志. 
     3、ALter语句可以用来改变数据库中的一些特? 比如[~冲?Buffer pool), 模式(Schema), ?Table), 表空?Table Space), 触发?Trigger), 视图(View)], 注意: 不能修改索引, 如果想修改烦? 必须删除该烦引后重新d、例? alter table t_ci_yclsqjhzb add column fd_sxygbh CHARACTER(20); Z改表t_ci_yclsqjhzb, d一个字Dfd_sxygbh。修改字D属性:alter table t_ci_yclsqjhzb alter column fd_sxygbh set datatype CHARACTER(50);

     4、Drop语句用来删除一些数据库特征, 比如包括[~冲?Buffer pool), 事g监视?Event monitor), 函数(Function), 索引(Index), 模式(Schema), 存储q程(Stored procedure), ?Table), 表空?Table space), 触发?Trigger), 视图(View)], 单的例子 drop table temp, 是删除表temp.

二、数据库操作语言(DML)

     1、用Select, 用于索表或者视图中的数据、例?select * from temp;
     2、用Insert, 向表或者视图中d一条数? 例子 Insert into temp (字段1, 字段2, 字段3) values (?, ?, ?);
     3、用update, 修改表数据或者视图中数据、例?: update temp set 字段1=?, 字段2=? 例子2: update temp set(字段1,字段2)=(?,?);
     4、用delete, 删除表数据或者视图中的数据、例?delete from temp
     5、表中数据非常多的时候,500万条以上Q需要用表分区来提高效率?/p>

三、SQL工具

     1、内q接
     2、外q接(左连? 双? 全连?.内连接时Q返回查询结果集合中之仅是符合查询条? WHERE 搜烦条g?HAVING 条g)和连接条件之行。而采用外q接Ӟ它返回到查询l果集合中之不仅包含W合q接条g之行Q而且q包括左?左外q接?、右?叛_q接?或两个边接表(全外q接)中之所有数据行?
     3、就DB2而言, q接查询的效率要比子查询要高.
     4、Having和where的区? 只有使用了group by的语句才能用having.
     5、Case语句在sql 中的应用,例如: select 字段1, 字段2 CASR type when 'T' then 'TABLE' when 'V' then 'VIEW' else 'OTHERS' END from temp,相当? select 字段1,字段2,table from temp where type = 'T' union all select 字段1,字段2,view from temp where type = 'V';
     6、合q查询Union.

四、SQL函数

1、列函数
  1.1 AVG函数, q_值的函数.
  1.2 COUNT函数, 计算表中某列的行?
  1.3 MAX函数, MIN函数,
  1.4 STDDEV函数, q回一l数的标准方? stddev函数的参数可以是M数字型数据类? q回l果是双_ֺ点?
  1.5 SUM函数, 求和
  1.6 VARIANCE,q回一l数据的方差, VARIANCE函数的参数可以是M数字型数据类? q回l果是双_ֺ点?
2、标量函?br>  2.1 ABS l对? HEXq回值的十六q制表示.
  2.2 LENGTHq回参数中的字节数长?
  2.3 YEAR抽取参数中的q䆾.

五、DB2 UDB囑Ş用户界面

1、配|助? 指o: db2ca, 使用配置助手来配|和l护要使用的数据库对象, 必须在db2上配|了要存储的数据库后才能用这些数据库.
2、控制中? 指o: db2cc, 用户可以在对象窗格或者内容窗g选中要操作的对象, 然后右键弹出快捷菜单, 然后通过快捷菜单的命? 对该对象q行相应的操?
3、命令编辑器, 指o: db2ce, 用户可以在命令编辑器中输入指令或者调用现成的命o脚本, 然后查看执行后的l果.
4、命令窗? 指o: db2cmd, 用户可以在窗口中输入命o或调用现成的命o脚本, 然后执行, q查看结?
5、信息中? 指o: db2ic, db2提供了丰富的信息, 几乎所有的信息都可以通过信息中心来获?
6、开发中? 指o: db2dc, 开发中心可以完成多UQ? 如创建项? d数据库连? 创徏存储q程, 创徏UDF{基本Q? 也可以完成更改环境设|?
7、健康中? 指o: db2hc.
8、Q务中? 指o: db2tc, 可以创徏一些命令脚?
9、复制中? 指o: db2rc,

六、DB2安全控制

1、验证,数据库安全性中最基本的概念之一是验证Q这是一个相当简单的q程Q系l通过q个q程来证实用戯n份。用户可以通过提供w䆾证明或验证o。来响应验证h?br>2、验证选项Qdbm cfg authentication 参数的许多设|在逻辑上可以分lؓ以下四个不同cdQserverQ服务器Q、clientQ客hQ、dce、kerberos?br>3、serverQ服务器Q缺省安全性机Ӟ指明验证应该使用服务器的操作pȝ在服务器上发生。如果用h识和密码是在q接期间指定的,那么 db2 调用操作系l函数来验证提交的用h识和密码。(在基?windows 的环境中Q用h识常被称为用户名。用户名和密码合h常被UCؓ用户账户。)
4、clientQ客hQ验证。该l仅有的选项 client 指明验证在客户Z发生。如果客hȝ在原本就h安全Ҏ的操作pȝQ例如,aixQ上Q那么它是可信dh。通常Q除 microsoft windows 95 ?98 被认Z可信M外,所有客h都是可信ȝ?

七、DB2备䆾恢复操作

1、整个备份,在控制中心,直接备䆾Q这个备份包括表l构Q描q、注释、数据库函数、触发器、存储过E?..Q,恢复的时候也直接在控制中心点恢复库就可以了,q里要注意恢复的路径目录Q日期等?br>2、db2moveҎQ一般只用来备䆾表数据,如果没有表结构也会同时新Q但是没有其他例如注释、触发器{等的恢复。备份的例子Qdb2move cjdbgq[tablename] export -u bscj[user] -p baosight[password]Q这里也能备份单表。恢复的例子Qdb2move cjdbgq[tablename] import-u bscj[user] -p baosight[password]Q这里需要注意操作的目录Q应选择为Dosq入目录?br>3、单表数据导出、导入,导出例子Qexport to c:\test\test.ixf of ixf select * from testQ导入数据:import from c:\test\test.ixf of ixf insert into bscj.T_CI_ALERMQ这里的import是添加的方式Q所以在操作前需要delete from bscj.T_CI_ALERMQ把已有数据清除?br>



]]>
Hibernate实践http://www.tkk7.com/wealupa/archive/2007/01/18/94625.html常言W?/dc:creator>常言W?/author>Thu, 18 Jan 2007 06:20:00 GMThttp://www.tkk7.com/wealupa/archive/2007/01/18/94625.htmlhttp://www.tkk7.com/wealupa/comments/94625.htmlhttp://www.tkk7.com/wealupa/archive/2007/01/18/94625.html#Feedback0http://www.tkk7.com/wealupa/comments/commentRss/94625.htmlhttp://www.tkk7.com/wealupa/services/trackbacks/94625.html阅读全文

]]>
数据库常见问题集?/title><link>http://www.tkk7.com/wealupa/archive/2006/12/16/88269.html</link><dc:creator>常言W?/dc:creator><author>常言W?/author><pubDate>Sat, 16 Dec 2006 14:38:00 GMT</pubDate><guid>http://www.tkk7.com/wealupa/archive/2006/12/16/88269.html</guid><wfw:comment>http://www.tkk7.com/wealupa/comments/88269.html</wfw:comment><comments>http://www.tkk7.com/wealupa/archive/2006/12/16/88269.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/wealupa/comments/commentRss/88269.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/wealupa/services/trackbacks/88269.html</trackback:ping><description><![CDATA[<div id="p7bfn9j" class="subtable altbg2 t_msg" style="WIDTH: auto; HEIGHT: auto"><strong>1、几UInt型的区别</strong> <br>                                       <strong><span style="COLOR: #0000cd">MIN                                         MAX<br></span></strong>TINYINT             1       -128                                          127  <br>SMALLINT         2       -32768                                      32767  <br>MEDIUMINT      3       -8388608                                  8388607  <br>INT                      4       -2147483648                            2147483647  <br>BIGINT               8       -9223372036854775808          9223372036854775807</div> <img src ="http://www.tkk7.com/wealupa/aggbug/88269.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/wealupa/" target="_blank">常言W?/a> 2006-12-16 22:38 <a href="http://www.tkk7.com/wealupa/archive/2006/12/16/88269.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate的gq加载问?/title><link>http://www.tkk7.com/wealupa/archive/2006/12/16/88266.html</link><dc:creator>常言W?/dc:creator><author>常言W?/author><pubDate>Sat, 16 Dec 2006 14:36:00 GMT</pubDate><guid>http://www.tkk7.com/wealupa/archive/2006/12/16/88266.html</guid><wfw:comment>http://www.tkk7.com/wealupa/comments/88266.html</wfw:comment><comments>http://www.tkk7.com/wealupa/archive/2006/12/16/88266.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/wealupa/comments/commentRss/88266.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/wealupa/services/trackbacks/88266.html</trackback:ping><description><![CDATA[        众所周知,CHibernate3.0以后,兌关系的对象默认都是用gq加?例如<one-to-many>?但我在映?lt;one-to-one>,<many-to-one>关系时指定了lazy="true",但是在查询对象时,我只x询一个对?仍然会把q个对象所兌?lt;one-to-one>,<many-to-one>对象一h询出?q样造成了极大的性能费.在不指定lazy属性时,<many-to-one>所兌的对象反而会延迟加蝲,q让我大为困?q以为是Hibernate的bug.  <div><br>        在网上查找资?说在Z延迟加蝲<one-to-one>,<many-to-one>所兌的对?需要设|被兌的对?lt;class name="" lazy="true">,我也q样做了,但是仍然没有效果. </div> <div><br>         仔细阅读了Hibernate的手?才发现原来要延迟加蝲<one-to-one>,<many-to-one>所兌的对象时,除了要指定lazy="true"?q需要运行期字节码增?而我省去了这一?所以gq加载没有效?同时q发现在默认情况?<one-to-one>,<many-to-one>的lazy属性是"proxy"而不?true"!因此如果直接采用lazy的默认?是可以gq加载的. </div> <div><br><strong>ȝ一? </strong><br>        <many-to-one>默认的属性是lazy="proxy",此时默认是会延迟加蝲?在指定了lazy="true"之后,必须要经q运行期字节码增?延迟加蝲才有效果. </div> <div> </div> <div>        ?lt;one-to-one>相对要复杂一?延迟加蝲q要受到constrained属性的限制.constrained="false"时表明实体和被关联到的实体的U束不是强制?卛_在一个实体时,它通过<one-to-one>兌的实体可能存?也可能不存在,q时在查询实体时,HibernateM发v一ơ查询检?lt;one-to-one>所兌的实体是否存?而这时已l可以把one-to-one兌的实体查询出来了,因此?lt;one-to-one>关系?如果constrained="false",L会立卛_载关联到的实? </div> <div><br>        如果当constrained="true",且lazy="proxy"(默认),是可以gq加载的. </div> <div>        如果当constrained="true",且lazy="true"?需要经q运行期字节码增?延迟加蝲才会奏效.</div> <div> </div> <div><strong>Open Session In View</strong></div> <div>       使用Open Session In View有一个好处,是当页面需要用关联后的实体时才会L扄存中是否已经有所需要的对象实体了,如果有直接返回结果,如果没有才重新查询?/div> <div> </div> <div><strong>cache</strong></div> <div><strong>        </strong>cache是Hibernate使用的缓存。如果你的数据是频繁更新的,比如银行pȝQ那么,你的数据做cache是不安全的,那么你的取数据的{略需要别高一些,甚至是需要事务的取~存数据Q如果你的数据是频繁dQ修改少的,我可以放心的~存Q不必设|过高的~存q发控制U别Q比如是论坛pȝQ那么你说的问题几乎不可能出现啊?<br>         两面性是有,但是我们Ҏ场合Q在合适的场合使用合适的一面,那就不ok了?我得问题讨论的前提是使用cache没有q发更新之类问题的前提下的,是指在用cache时不需要考虑另一面性的前提下,q种情况下谈何两面性?/div> <div><strong></strong> </div> <div><strong>什么样的数据适合存放到第二~存中?</strong></div> <div><strong>       </strong>1?span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">很少被修改的数据</span></div> <div><span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">   2、不是很重要的数据,允许出现偶尔q发的数?/span></div> <div><span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">   3、不会被q发讉K的数?/span></div> <div><span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">   4、参考数?br><br><strong>不适合存放到第二~存的数据?</strong><br>   1、经常被修改的数?/span></div> <div><span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">   2、胦务数据,l对不允许出现ƈ?/span></div> <div><span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">   3、与其他应用׃n的数据?/span></div> <img src ="http://www.tkk7.com/wealupa/aggbug/88266.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/wealupa/" target="_blank">常言W?/a> 2006-12-16 22:36 <a href="http://www.tkk7.com/wealupa/archive/2006/12/16/88266.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate的数据缓?/title><link>http://www.tkk7.com/wealupa/archive/2006/12/16/88265.html</link><dc:creator>常言W?/dc:creator><author>常言W?/author><pubDate>Sat, 16 Dec 2006 14:35:00 GMT</pubDate><guid>http://www.tkk7.com/wealupa/archive/2006/12/16/88265.html</guid><wfw:comment>http://www.tkk7.com/wealupa/comments/88265.html</wfw:comment><comments>http://www.tkk7.com/wealupa/archive/2006/12/16/88265.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/wealupa/comments/commentRss/88265.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/wealupa/services/trackbacks/88265.html</trackback:ping><description><![CDATA[一般而言QORM的数据缓存应包含如下几个层次Q?br>      1. 事务U缓存(Transcation Layer CacheQ?br>      2. 应用U?q程U缓存(Application/Process Layer CacheQ?br>      3. 分布式缓存(Cluster Layer CacheQ?br><br>      Hibernate数据~存QCacheQ分Z个层ơ,以Hibernate语义加以区分Q可分ؓQ?br>      1. 内部~存QSession LevelQ也UCؓ一U缓存)<br>      2. 二~存QSessionFactory LevelQ也UCؓ二~存Q?br><br>      Hibernate中,~存在以下情况中发挥作用:<br>      1. 通过id[主键]加蝲数据?br>      2. 延迟加蝲<br><br>      内部~存正常情况下由Hibernate自动l护Q如果需要手动干预,可以通过以下Ҏ完成Q?br>      1. Session.evict<br>         某个特定对象从内部~存清除?br>      2. Session.clear<br>         清空内部~存?br><br>      在Hibernate中,二~存늛了应用~存和分布式~存领域。如果数据满以下条Ӟ则可其U_~存理?br>      1. 数据不会被第三方应用修改Q?br>      2. 数据大小(Data Size)在可接收的范围之内;<br>      3. 数据更新频率较低Q?br>      4. 同一数据可能会被pȝ频繁引用Q?br>      5. 非关键数?关键数据Q如金融帐户数据)?br>      Hibernate本nq未提供二~存的品化实现Q而是Z多的W三方缓存组件提供了接入接口Q较常用的第三方lg有:<br>      1. JCS<br>      2. EHCache<br>      3. OSCache<br>      4. JBossCache<br>      5. SwarmCache<br>      Hibernate中启用二U缓存,需要在hibernate.cfg.xml配置hibernate.cache.provider_class参数Q之后,需要在映射文g中指定各个映实?以及collection)的缓存同步策略。Hibernate提供了一?U内|的~存同步{略Q?br>      1. read-only<br>         只读。对于不会发生改变的数据Q可使用只读型缓存?br>      2. nonstrict-read-write<br>         如果E序对ƈ发访问下的数据同步要求不是非怸|且数据更新操作频率较低,可以采用本选项Q获得较好的性能?br>      3. read-write<br>         严格可读写缓存。基于时间戳判定机制Q实C“read committed”事务隔离{。可用于Ҏ据同步要求严格的情况Q但不支持分布式~存。这也是实际应用中用最多的同步{略?br>      4. transactional<br>         事务型缓存,必须q行在JTA事务环境中? <img src ="http://www.tkk7.com/wealupa/aggbug/88265.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/wealupa/" target="_blank">常言W?/a> 2006-12-16 22:35 <a href="http://www.tkk7.com/wealupa/archive/2006/12/16/88265.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate二~存ȝhttp://www.tkk7.com/wealupa/archive/2006/12/16/88264.html常言W?/dc:creator>常言W?/author>Sat, 16 Dec 2006 14:35:00 GMThttp://www.tkk7.com/wealupa/archive/2006/12/16/88264.htmlhttp://www.tkk7.com/wealupa/comments/88264.htmlhttp://www.tkk7.com/wealupa/archive/2006/12/16/88264.html#Feedback0http://www.tkk7.com/wealupa/comments/commentRss/88264.htmlhttp://www.tkk7.com/wealupa/services/trackbacks/88264.html很多人对二~存都不太了解,或者是有错误的认识Q我一直想写一文章介l一下hibernate的二U缓存的Q今天终于忍不住了?
我的l验主要来自hibernate2.1版本Q基本原理和3.0?.1是一LQ请原谅我的固不化?/p>

hibernate的session提供了一U缓存,每个sessionQ对同一个idq行两次loadQ不会发送两条sqll数据库Q但是session关闭的时候,一U缓存就失效了?/p>

二~存是SessionFactoryU别的全局~存Q它底下可以使用不同的缓存类库,比如ehcache、oscache{,需要设|hibernate.cache.provider_classQ我们这里用ehcacheQ在2.1中就?
hibernate.cache.provider_class=net.sf.hibernate.cache.EhCacheProvider
如果使用查询~存Q加?
hibernate.cache.use_query_cache=true

~存可以单的看成一个MapQ通过key在缓存里面找?/p>

Class的缓?/strong>
对于一条记录,也就是一个PO来说Q是ҎID来找的,~存的key是IDQ是POJO。无论listQloadq是iterateQ只要读Z个对象,都会填充~存。但是list不会使用~存Q而iterate会先取数据库select id出来Q然后一个id一个id的loadQ如果在~存里面有,׃~存取,没有的话去数据库load。假设是d~存Q需要设|:

1 < cache  usage ="read-write" />  

如果你用的二~存实现是ehcache的话Q需要配|ehcache.xml

1 < cache  name ="com.xxx.pojo.Foo"  maxElementsInMemory ="500"  eternal ="false"  timeToLiveSeconds ="7200"  timeToIdleSeconds ="3600"  overflowToDisk ="true"   />  

其中eternal表示~存是不是永q不时QtimeToLiveSeconds是缓存中每个元素Q这里也是一个POJOQ的时旉Q如果eternal="false"Q超q指定的旉Q这个元素就被移C。timeToIdleSeconds是发呆时_是可选的。当往~存里面put的元素超q?00个时Q如果overflowToDisk="true"Q就会把~存中的部分数据保存在硬盘上的时文仉面?
每个需要缓存的class都要q样配置。如果你没有配置Qhibernate会在启动的时候警告你Q然后用defaultCache的配|,q样多个class会共享一个配|?
当某个ID通过hibernate修改Ӟhibernate会知道,于是U除~存?
q样大家可能会想Q同L查询条gQ第一ơ先listQ第二次再iterateQ就可以使用到缓存了。实际上q是很难的,因ؓ你无法判断什么时候是W一ơ,而且每次查询的条仉常是不一LQ假如数据库里面?00条记录,id??00Q第一ơlist的时候出了前50个idQ第二次iterate的时候却查询?0?0号idQ那?0-50是从~存里面取的Q?1?0是从数据库取的,共发?+20条sql。所以我一直认为iterate没有什么用QL会有1+N的问题?
Q题外话Q有说法说大型查询用list会把整个l果集装入内存,很慢Q而iterate只select id比较好,但是大型查询L要分|的,谁也不会真的把整个结果集装进来,假如一?0条的话,iterate共需要执?1条语句,list虽然选择若干字段Q比iterateW一条select id语句慢一些,但只有一条语句,不装入整个结果集hibernateq会Ҏ数据库方a做优化,比如使用mysql的limitQ整体看来应该还是list快。)
如果惌对list或者iterate查询的结果缓存,p用到查询~存?/p>

查询~存
首先需要配|hibernate.cache.use_query_cache=true
如果用ehcacheQ配|ehcache.xmlQ注意hibernate3.0以后不是net.sf的包名了

1 < cache  name ="net.sf.hibernate.cache.StandardQueryCache"  
2 maxElementsInMemory ="50"  eternal ="false"  timeToIdleSeconds ="3600"  
3 timeToLiveSeconds ="7200"  overflowToDisk ="true" />  
4 < cache  name ="net.sf.hibernate.cache.UpdateTimestampsCache"  
5 maxElementsInMemory ="5000"  eternal ="true"  overflowToDisk ="true" />  

然后
query.setCacheable(true);//ȀzL询缓?
query.setCacheRegion("myCacheRegion");//指定要用的cacheRegionQ可?
W二行指定要使用的cacheRegion是myCacheRegionQ即你可以给每个查询~存做一个单独的配置Q用setCacheRegion来做q个指定Q需要在ehcache.xml里面配置它:

1 < cache  name ="myCacheRegion"  maxElementsInMemory ="10"  eternal ="false"  timeToIdleSeconds ="3600"  timeToLiveSeconds ="7200"  overflowToDisk ="true"   />  

如果省略W二行,不设|cacheRegion的话Q那么会使用上面提到的标准查询缓存的配置Q也是net.sf.hibernate.cache.StandardQueryCache

对于查询~存来说Q缓存的key是根据hql生成的sqlQ再加上参数Q分늭信息Q可以通过日志输出看到Q不q它的输Z是很可读Q最好改一下它的代码)?
比如hqlQ?
from Cat c where c.name like ?
生成大致如下的sqlQ?
select * from cat c where c.name like ?
参数?tiger%"Q那么查询缓存的key*大约*是这L字符Ԍ我是凭记忆写的,q不_Q不q看了也该明白了Q:
select * from cat c where c.name like ? , parameter:tiger%
q样Q保证了同样的查询、同L参数{条件下h一Lkey?
现在说说~存的,如果是list方式的话Q在q里q不是整个结果集Q而是查询出来的这一串ID。也是_不管是listҎq是iterateҎQ第一ơ查询的时候,它们的查询方式很它们qx的方式是一LQlist执行一条sqlQiterate执行1+N条,多出来的行ؓ是它们填充了~存。但是到同样条gW二ơ查询的时候,都和iterate的行Z样了Q根据缓存的keyȝ存里面查CQ是一串idQ然后在到class的缓存里面去一个一个的load出来。这样做是ؓ了节U内存?
可以看出来,查询~存需要打开相关cȝclass~存。list和iterateҎW一ơ执行的时候,都是既填充查询缓存又填充class~存的?
q里q有一个很Ҏ被忽视的重要问题Q即打开查询~存以后Q即使是listҎ也可能遇?+N的问题!相同条gW一ơlist的时候,因ؓ查询~存中找不到Q不class~存是否存在数据QL发送一条sql语句到数据库获取全部数据Q然后填充查询缓存和class~存。但是第二次执行的时候,问题来了,如果你的class~存的超时时间比较短Q现在class~存都超时了Q但是查询缓存还在,那么listҎ在获取id串以后,会一个一个去数据库loadQ因此,class~存的超时时间一定不能短于查询缓存设|的时旉Q如果还讄了发呆时间的话,保证class~存的发呆时间也大于查询的缓存的生存旉。这里还有其他情况,比如class~存被程序强制evict了,q种情况p自己注意了?/p>

另外Q如果hql查询包含select字句Q那么查询缓存里面的是整个l果集了?/p>

当hibernate更新数据库的时候,它怎么知道更新哪些查询~存呢?
hibernate在一个地方维护每个表的最后更新时_其实也就是放在上面net.sf.hibernate.cache.UpdateTimestampsCache所指定的缓存配|里面?
当通过hibernate更新的时候,hibernate会知道这ơ更新媄响了哪些表。然后它更新q些表的最后更新时间。每个缓存都有一个生成时间和q个~存所查询的表Q当hibernate查询一个缓存是否存在的时候,如果~存存在Q它q要取出~存的生成时间和q个~存所查询的表Q然后去查找q些表的最后更新时_如果有一个表在生成时间后更新q了Q那么这个缓存是无效的?
可以看出Q只要更新过一个表Q那么凡是涉及到q个表的查询~存失效了Q因此查询缓存的命中率可能会比较低?/p>

Collection~存
需要在hbm的collection里面讄

1 < cache  usage ="read-write" />  

假如class是CatQcollection叫childrenQ那么ehcache里面配置

1 < cache  name ="com.xxx.pojo.Cat.children"  
2 maxElementsInMemory ="20"  eternal ="false"  timeToIdleSeconds ="3600"  timeToLiveSeconds ="7200"  
3 overflowToDisk ="true"   />  

Collection的缓存和前面查询~存的list一P也是只保持一串idQ但它不会因个表更新q就失效Q一个collection~存仅在q个collection里面的元素有增删时才失效?
q样有一个问题,如果你的collection是根据某个字D|序的Q当其中一个元素更C该字D|Q导致顺序改变时Qcollection~存里面的顺序没有做更新?/p>

~存{略
只读~存Qread-onlyQ:没有什么好说的
?写缓存(read-writeQ?E序可能要的更新数据
不严格的?写缓存(nonstrict-read-writeQ:需要更新数据,但是两个事务更新同一条记录的可能性很,性能比读写缓存好
事务~存QtransactionalQ:~存支持事务Q发生异常的时候,~存也能够回滚,只支持jta环境Q这个我没有怎么研究q?/p>

d~存和不严格d~存在实C的区别在于,d~存更新~存的时候会把缓存里面的数据换成一个锁Q其他事务如果去取相应的~存数据Q发现被锁住了,然后q接取数据库查询?
在hibernate2.1的ehcache实现中,如果锁住部分~存的事务发生了异常Q那么缓存会一直被锁住Q直?0U后时?
不严D写缓存不锁定~存中的数据?/p>

使用二~存的前|条?/strong>
你的hibernateE序Ҏ据库有独占的写访问权Q其他的q程更新了数据库Qhibernate是不可能知道的。你操作数据库必需直接通过hibernateQ如果你调用存储q程Q或者自׃用jdbc更新数据库,hibernate也是不知道的。hibernate3.0的大扚w更新和删除是不更CU缓存的Q但是据?.1已经解决了这个问题?
q个限制相当的棘手,有时候hibernate做批量更新、删除很慢,但是你却不能自己写jdbc来优化,很郁闷吧?
SessionFactory也提供了U除~存的方法,你一定要自己写一些JDBC的话Q可以调用这些方法移除缓存,q些Ҏ是:

 1 void  evict(Class persistentClass) 
 2 Evict all entries from the second - level cache. 
 3 void  evict(Class persistentClass, Serializable id) 
 4 Evict an entry from the second - level cache. 
 5 void  evictCollection(String roleName) 
 6 Evict all entries from the second - level cache. 
 7 void  evictCollection(String roleName, Serializable id) 
 8 Evict an entry from the second - level cache. 
 9 void  evictQueries() 
10 Evict any query result sets cached in the  default  query cache region. 
11 void  evictQueries(String cacheRegion) 
12 Evict any query result sets cached in the named query cache region. 

不过我不q样做,因ؓq样很难l护。比如你现在用JDBC扚w更新了某个表Q有3个查询缓存会用到q个表,用evictQueries(String cacheRegion)U除?个查询缓存,然后用evict(Class persistentClass)U除了class~存Q看上去好像完整了。不q哪天你d了一个相x询缓存,可能会忘记更新这里的U除代码。如果你的jdbc代码到处都是Q在你添加一个查询缓存的时候,q知道其他什么地方也要做相应的改动吗Q?/p>

----------------------------------------------------

ȝQ?/strong>
不要惛_然的以ؓ~存一定能提高性能Q仅仅在你能够驾驭它q且条g合适的情况下才是这L。hibernate的二U缓存限制还是比较多的,不方便用jdbc可能会大大的降低更新性能。在不了解原理的情况下ؕ用,可能会有1+N的问题。不当的使用q可能导致读数据?
如果受不了hibernate的诸多限Ӟ那么q是自己在应用程序的层面上做~存吧?
在越高的层面上做~存Q效果就会越好。就好像管盘有缓存,数据库还是要实现自己的缓存,管数据库有~存Q咱们的应用E序q是要做~存。因为底层的~存它ƈ不知道高层要用这些数据干什么,只能做的比较通用Q而高层可以有针对性的实现~存Q所以在更高的别上做缓存,效果也要好些吧?/p>

]]>
Hibernate的主键生成器generator在SQLServer中的使用http://www.tkk7.com/wealupa/archive/2006/12/16/88251.html常言W?/dc:creator>常言W?/author>Sat, 16 Dec 2006 14:18:00 GMThttp://www.tkk7.com/wealupa/archive/2006/12/16/88251.htmlhttp://www.tkk7.com/wealupa/comments/88251.htmlhttp://www.tkk7.com/wealupa/archive/2006/12/16/88251.html#Feedback1http://www.tkk7.com/wealupa/comments/commentRss/88251.htmlhttp://www.tkk7.com/wealupa/services/trackbacks/88251.html1、如果主键字Dؓ自增cdQ?br>那么对应?hbm.xml文g中的id字段的xml声明Q?br>应该q么写:
<generator class="native" />
例如Q?br>
<id
column="user_id"
name
="Id"
type
="integer"
>
<generator class="native" />
</id>

其实q个nativeq实际的类型,而是hiberanteҎ
当前使用的数据库Q自动用对应的cd?br>例如Q如果sqlserverQnative对应identity
见Hiberante参考:
nativeQ本圎ͼ
Ҏ底层数据库的能力选择identity, sequence 或者hilo中的一个?

2、如果主键字D不讄增,但是是int型的Q?/strong>
可以使用incrementQ由hibernate产生主键?br><generator class="increment" />
不过q种ҎQ对于ƈ发量大的应用Q似乎最好不要采用?br>见hiberante参考:
incrementQ递增Q?br>用于为long, short或者intcd生成唯一标识。只有在没有其他q程往同一张表中插入数据时才能使用?

在集下不要使用?

3、如果用uuid.hex产生的随?2位数最Z键,
那么数据库的id字段cd为charQ长度ؓ32
hbm.xml中写为: <generator class="uuid.hex" />
另外Quuid.string也是功能cM?br>uuid.hex产生的是32位的16q制数字的字W串?br>而uuid.string产生的是16个字W长的Q意ASCII字符l成的字W串
见参考:
uuid.hex
用一?28-bit的UUID法生成字符串类型的标识W。在一个网l中唯一Q用了IP地址Q。UUID被编

码ؓ一?2?6q制数字的字W串?

uuid.string
使用同样的UUID法。UUID被编码ؓ一?6个字W长的Q意ASCII字符l成的字W串。不能?br>
在PostgreSQL数据库中

]]>数据库主键设计之思?/title><link>http://www.tkk7.com/wealupa/archive/2006/12/16/88250.html</link><dc:creator>常言W?/dc:creator><author>常言W?/author><pubDate>Sat, 16 Dec 2006 14:16:00 GMT</pubDate><guid>http://www.tkk7.com/wealupa/archive/2006/12/16/88250.html</guid><wfw:comment>http://www.tkk7.com/wealupa/comments/88250.html</wfw:comment><comments>http://www.tkk7.com/wealupa/archive/2006/12/16/88250.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/wealupa/comments/commentRss/88250.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/wealupa/services/trackbacks/88250.html</trackback:ping><description><![CDATA[<div><span style="FONT-SIZE: 10pt"><strong>主键的必要? <br></strong>    有些朋友可能不提倡数据库表必要主键Q但在我的思考中Q觉得每个表都应该具有主键,不管是单主键q是双主键,主键的存在就代表着表结构的完整性,表的记录必须得有唯一区分的字D,主键主要是用于其他表的外键关联,本记录的修改与删除,当我们没有主键时Q这些操作会变的非常ȝ?</span></div> <span style="FONT-SIZE: 10pt"> <div><br><strong>主键的无意义性:<br></strong>    我强调主键不应该h实际的意义,q可能对于一些朋友来说不太认同,比如订单表吧Q会?#8220;订单~号”字段Q而这个字D呢在业务实际中本n是应该h唯一性,h唯一标识记录的功能,但我是不推荐采用订单~号字段作ؓ主键的,因ؓh实际意义的字D,h“意义更改”的可能性,比如订单~号在刚开始的时候我们一切顺利,后来客户?#8220;订单可以作废Qƈ重新生成订单Q而且订单可保持原订单号一?#8221;Q这样原来的主键面临危险了。因此,h唯一性的实际字段也代表可以作Z键。因此,我推荐是新设一个字D专门用Z键,此主键本w在业务逻辑上不体现Q不h实际意义。而这U主键在一定程序增加了复杂度,所以要视实际系l的规模大小而定Q对于小目Q以后扩展不会很大的话,也查允许用实际唯一的字D作主键的?</div> <div><br><strong>主键的选择Q?/strong> <br>      我们现在在思考一下,应该采用什么来作表的主键比较合理,x一下,主键的设计没有一个定论,各h有各人的ҎQ哪怕同一个,在不同的目中,也会采用不同的主键设计原则?/div> <div><br>      <strong>W一Q编号作主键 </strong><br>      此方法就是采用实际业务中的唯一字段?#8220;~号”作ؓ主键设计Q这在小型的目中是推荐q样做的Q因可以佉K目比较简单化Q但在用中却可能带来一些麻烦,比如要进?#8220;~号修改”Ӟ可能要涉及到很多相关联的其他表,p黎叔说的“后果很严?#8221;;q有是上面提到?#8220;业务要求允许~号重复?#8221;Q我们再那么先知Q都无法知道业务会修改成什? </div> <div><br>      <strong>W二Q自动编号主?/strong><br>      q种Ҏ也是很多朋友在用的Q就是新Z个ID字段Q自动增长,非常方便也满主键的原则?/div> <div>      <strong>优点是:</strong>数据库自动编P速度快,而且是增量增长,聚集型主键按序存放Q对于检索非常有?数字型的Q占用空间小Q易排序Q在E序中传递也方便;如果通过非系l增加记录(比如手动录入Q或是用其他工具直接在表里插入新记录Q或老系l数据导入)Ӟ非常方便Q不用担心主键重复问题?</div> <div><br>       <strong>~点Q?/strong>其实~点也就是来自其优点Q就是因动增长,在手动要插入指定ID的记录时会显得麻烦,其是当pȝ与其他系l集成时Q需要数据导入时Q很难保证原pȝ的ID不发生主键冲H(前提是老系l也是数字型的);如果其他pȝ主键不是数字型那麻烦更大了Q会D修改主键数据cd了,q也会导致其他相兌的修改,后果同样很严?q其他pȝ也是数字型的Q在导入ӞZ区分新老数据,可能惛_老数据主键前l一加一?#8220;o”(old)来表C是老数据,那么自动增长的数字型又面临一个挑战?/div> <div><br>      <strong>W三QMax加一 <br></strong>      ׃自动~号存在那些问题Q所以有些朋友就采用自己生成Q同h数字型的Q只是把自动增长L了,采用在InsertӞdMax值后加一Q这U方法可以避免自动编L问题Q但也存在一个效率问题,如果记录非常大的话,那么Max()也会影响效率?更严重的是ƈ发性问题,如果同时有两到相同的Max后,加一后插入的IDg重复Q这已经是有l验教训的了?</div> <div><br>      <strong>W四Q自制加一</strong><br>      考虑Max加一的效率后Q有人采用自制加一Q也是Z个特别的表,字段为:表名Q当前序列倹{这样在往表中插入值时Q先从此表中扑ֈ相应表的最大值后加一Q进行插入,有h可能发现Q也可能会存在ƈ发处理,q个q发处理Q我们可以采用lockU程的方式来避免Q在生成此值的Ӟ先LockQ取到g后,再unLock出来Q这样不会有两h同时生成了。这比Max加一的速度要快多了。但同样存在一个问题:在与其他pȝ集成Ӟq了系l中的生成方法后Q很ȝ保证自制表中的最大g导入后的保持一_而且数字型都存在上面讲到?#8220;o”老数据的导入问题。因此在“自制加一”中可以把主键设ؓ字符型的。字W型的自制加一我倒是蛮推荐的Q应该字W型主键可以应付很多我们意想不到的情c?/div> <div><br>      <strong>W五QGUID主键</strong><br>      目前一个比较好的主键是采用GUIDQ当然我是推荐主键还是字W型的,但值由GUID生成QGUID是可以自动生成,也可以程序生成,而且键g可能重复Q可以解决系l集成问题,几个pȝ的GUID值导ChQ也不会发生重复Q就有“o”老数据也可以区分Q而且效率很高Q在.NET里可以直接用System.Guid.NewGuid()q行生成Q在SQL里也可以使用 NewID()生成?/div> <div> </div> <div>      <strong>优点是:</strong><br>      ?IDENTITY 列相比,uniqueidentifier 列可以通过 NewID() 函数提前得知新增加的?IDQؓ应用E序的后l处理提供了很大方便。便于数据库ULQ其它数据库中ƈ不一定具?IDENTITY 列,?Guid 列可以作为字W型列{换到其它数据库中Q同时将应用E序中生的 GUID 值存入数据库Q它不会对原有数据带来媄响?nbsp;便于数据库初始化Q如果应用程序要加蝲一些初始数据, IDENTITY 列的处理方式比较麻烦,?uniqueidentifier 列则无需M处理Q直接用 T-SQL 加蝲卛_?便于Ҏ些对象或帔Rq行怹标识Q如cȝ ClassIDQ对象的实例标识QUDDI 中的联系人、服务接口、tModel标识定义{?</div> <div><br>      <strong> ~点是:</strong><br>       GUID D长,不容易记忆和输入Q而且q个值是随机、无序的?br>       GUID 的值有 16 个字节,与其它那些诸?4 字节的整数相比要相对大一些。这意味着如果在数据库中?uniqueidentifier 键,可能会带来两斚w的消极媄响:存储I间增大Q烦引时间较慢?<br>        我也不是推荐GUID最好,其实在不同的情况Q我们都可以采用上面的某一U方式,思考了一些利与弊Q也方便大家在进行设计时参考。这些也只是我的一Ҏ考而已Q而且可能我知识面限制Q会有一些误论在里面Q希望大家有什么想法欢q讨论?/div> </span> <img src ="http://www.tkk7.com/wealupa/aggbug/88250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/wealupa/" target="_blank">常言W?/a> 2006-12-16 22:16 <a href="http://www.tkk7.com/wealupa/archive/2006/12/16/88250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://sjmthanks.com" target="_blank">Ʒ޾Ʒպͼ</a>| <a href="http://www-456446.com" target="_blank">avѵӰ</a>| <a href="http://k67m.com" target="_blank">պƵƵ </a>| <a href="http://sztsa.com" target="_blank">ҰƵ</a>| <a href="http://8mav958.com" target="_blank">þþþþྫƷֱ</a>| <a href="http://myzhoubian.com" target="_blank">vavavaֻ</a>| <a href="http://xww678.com" target="_blank">޳AV߲</a>| <a href="http://ddm88888.com" target="_blank">ȫ»ɫؼվ</a>| <a href="http://50077995.com" target="_blank">õĻ2019</a>| <a href="http://8aa3.com" target="_blank">WWWƵ</a>| <a href="http://715686.com" target="_blank">¼ҳ </a>| <a href="http://beijinzhongliuyiyuan.com" target="_blank">Ƶרһ</a>| <a href="http://26cgw.com" target="_blank">ѾƷ99þùۺϾƷ</a>| <a href="http://zygwkqf.com" target="_blank">˳ɵӰ߹ۿ</a>| <a href="http://455zx.com" target="_blank">avպaɫͷ</a>| <a href="http://www-yhty.com" target="_blank">a߹ۿ</a>| <a href="http://www-gogo.com" target="_blank">ŷ޹ۺ</a>| <a href="http://js06vip.com" target="_blank">Ʒ޳AV߹ۿ</a>| <a href="http://z88d.com" target="_blank">avһ</a>| <a href="http://988938.com" target="_blank">޾Ʒ</a>| <a href="http://564ka.com" target="_blank">Ůʮ·츾</a>| <a href="http://cin17.com" target="_blank">ȫëƬ</a>| <a href="http://gzmkqp.com" target="_blank">ҹҹƷƵ</a>| <a href="http://2h6m.com" target="_blank">ѿaɫƬ</a>| <a href="http://benjiebf.com" target="_blank">ŮƵվ</a>| <a href="http://qestest.com" target="_blank">ŮAëƬ</a>| <a href="http://yuntuzy.com" target="_blank">ձ˳վ</a>| <a href="http://cn-zggx.com" target="_blank">99reȾƷƵ</a>| <a href="http://zzzttt669.com" target="_blank">þҹ³˿Ƭ</a>| <a href="http://727744.com" target="_blank">ŷպëƬ߿վ</a>| <a href="http://666za.com" target="_blank">ƷĻѹۿҹ</a>| <a href="http://nit8.com" target="_blank">ԺѵȫƵ</a>| <a href="http://yanshimlxg.com" target="_blank">˿appַios</a>| <a href="http://583s.com" target="_blank">aëƬѹۿ</a>| <a href="http://yiuuu.com" target="_blank">žȾþƵ</a>| <a href="http://4228970.com" target="_blank">97߹ۿƵ</a>| <a href="http://mtsp2.com" target="_blank">Դ߹ۿ</a>| <a href="http://222mp3.com" target="_blank">ѹۿ91Ƶ</a>| <a href="http://adcbgy.com" target="_blank">**ʵһëƬaa</a>| <a href="http://xmllhb.com" target="_blank">ձxxxxɫƵ</a>| <a href="http://508009.com" target="_blank">ĻӰwwwĻ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>