??xml version="1.0" encoding="utf-8" standalone="yes"?>日本欧美国产精品第一页久久,国产欧美久久久精品,女人高潮久久久叫人喷水http://www.shnenglu.com/wmuu/archive/2008/01/11/40943.html含笑半步?/dc:creator>含笑半步?/author>Fri, 11 Jan 2008 01:55:00 GMThttp://www.shnenglu.com/wmuu/archive/2008/01/11/40943.htmlhttp://www.shnenglu.com/wmuu/comments/40943.htmlhttp://www.shnenglu.com/wmuu/archive/2008/01/11/40943.html#Feedback0http://www.shnenglu.com/wmuu/comments/commentRss/40943.htmlhttp://www.shnenglu.com/wmuu/services/trackbacks/40943.html  pȝ提示W下 mysql --user=root -p
   use mysql
GRANT ALL PRIVILEGES ON *.* TO root@finapp IDENTIFIED BY "123"
grant all privieges on database.table to user@IpOrName identified by "password"









]]>
MySQL性能优化相关(? 作者:(x)andyaohttp://www.shnenglu.com/wmuu/archive/2008/01/09/40838.html含笑半步?/dc:creator>含笑半步?/author>Wed, 09 Jan 2008 15:52:00 GMThttp://www.shnenglu.com/wmuu/archive/2008/01/09/40838.htmlhttp://www.shnenglu.com/wmuu/comments/40838.htmlhttp://www.shnenglu.com/wmuu/archive/2008/01/09/40838.html#Feedback0http://www.shnenglu.com/wmuu/comments/commentRss/40838.htmlhttp://www.shnenglu.com/wmuu/services/trackbacks/40838.html原文link: http://andyao.javaeye.com/admin/show/144033
转蝲L(fng)?br>
1. ?/strong>
在Web应用E序体系架构中,数据持久层(通常是一个关pL据库Q是关键的核?j)部分,它对pȝ的性能有非帔R要的影响。MySQL是目前用最多的开源数据库Q但是MySQL数据库的默认讄性能非常的差Q仅仅是一个玩h据库。因此在产品中用MySQL数据库必进行必要的优化?br>优化是一个复杂的dQ本文描qMySQL相关的数据库设计和查询优化,服务器端优化Q存储引擎优化?br>
2. 数据库设计和查询优化
在MySQL Server性能调优中,首先要考虑的就是Database Schema设计Q这一Ҏ(gu)非常重要的。一个糟p的Schema设计即在性能调优的MySQL Server上运行,也会(x)表现出很差的性能Q和Schema怼Q查询语句的设计也会(x)影响MySQL的性能Q应该避免写Z效的SQL查询。这一节将详细讨论q两斚w的优化?br>
2.1 Schema Design
Schema的优化取决于要q行什么样的queryQ不同的query?x)有不同的Schema优化Ҏ(gu)?.2节将介绍Query Design的优化。Schema设计同样受到预期数据集大的影响。Schema设计时主要考虑Q标准化Q数据类型,索引?br>
2.1.1 标准?/font>

标准化是在数据库中组l数据的q程。其中包括,Ҏ(gu)设计规则创徏表ƈ在这些表间徏立关p;通过取消冗余度与不一致相x,该设计规则可以同时保护数据ƈ提高数据的灵zL。通常数据库标准化是让数据库设计符合某一U别的范式,通常满W三范式卛_。也有第四范式(也称?Boyce Codd范式QBCNF)Q与W五范式存在Q但是在实际设计中很考虑。忽视这些规则可能得数据库的设计不太完,但这不应影响功能?br>标准化的特点Q?br>
1) 所有的“对象”都在它自qtable中,没有冗余?br>2) 数据库通常由E-R囄成?br>3) z,更新属性通常只需要更新很的记录?br>4) Join操作比较耗时?br>5) SelectQsort优化措施比较?yu)?br>6) 适用于OLTP应用?br>
非标准化的特点:(x)
1) 在一张表中存储很多数据,数据冗余?br>2) 更新数据开销很大Q更C个属性可能会(x)更新很多表,很多记录?br>3) 在删除数据是有可能丢失数据?br>4) SelectQorder有很多优化的选择?br>5) 适用于DSS应用?br>

标准化和非标准化都有各自的优~点Q通常在一个数据库设计中可以؜合用,一部分表格标准化,一部分表格保留一些冗余数据:(x)
1) 对OLTP使用标准化,对DSS使用非标准化
2) 使用物化视图。MySQL不直接支持该数据库特性,但是可以用MyISAM表代ѝ?br>3) 冗余一些数据在表格中,例如ref_id和name存在同一张表中。但是要注意更新问题?br>4) 对于一些简单的对象Q直接用value作ؓ(f)建。例如IP address{?br>5) Reference by PRIMARY/UNIQUE KEY。MySQL可以优化q种操作Q例如:(x)
java 代码
  1. select city_name
  2. from city,state
  3. where state_id=state.id and state.code=‘CA’” converted to “select city_name from city where state_id=12

2.1.2 数据cd
最基本的优化之一是使表在磁盘上占据的空间尽可能。这能带来性能非常大的提升Q因为数据小Q磁盘读入较快,q且在查询过E中表内容被处理所占用的内存更。同Ӟ在更的列上建烦(ch)引,索引也会(x)占用更少的资源?br>可以使用下面的技术可以表的性能更好q且使存储空间最:(x)
1) 使用正确合适的cdQ不要将数字存储为字W串?br>2) 可能地使用最有效(最?的数据类型。MySQL有很多节省磁盘空间和内存的专业化cd?br>3) 可能用较?yu)的整数cd使表更小。例如,MEDIUMINTl常比INT好一些,因ؓ(f)MEDIUMINT列用的I间要少25%?br>4) 如果可能Q声明列为NOT NULL。它使Q何事情更快而且每列可以节省一位。注意如果在应用E序中确实需要NULLQ应该毫无疑问用它Q只是避?默认地在所有列上有它?br>5) 对于MyISAM表,如果没有M变长?VARCHAR、TEXT或BLOB?Q用固定尺寸的记录格式。这比较快但是不q地可能?x)浪费一些空间。即使你已经用CREATE选项让VARCHAR?span class=hilite1>ROW_FORMAT=fixedQ也可以提示想用固定长度的行?br>6) 使用sample character setQ例如latin1。尽量少使用utf-8Q因为utf-8占用的空间是latin1?倍。可以在不需要用utf-8的字D上面用latin1Q例如mailQurl{?br>

2.1.3 索引
所有MySQL列类型可以被索引。对相关列用烦(ch)引是提高SELECT操作性能的最佳途径。用烦(ch)引应该注意以下几点:(x)
1) MySQL只会(x)使用前缀Q例如key(a, b) …where b=5 用不到烦(ch)引?br>2) 要选择性的使用索引。在变化很少的列上用烦(ch)引ƈ不是很好Q例如性别列?br>3) 在Unique列上定义Unique index?br>4) 避免建立使用不到的烦(ch)引?br>5) 在Btree index中(InnoDB使用BtreeQ,可以在需要排序的列上建立索引?br>6) 避免重复的烦(ch)引?br>7) 避免在已有烦(ch)引的前缀上徏立烦(ch)引。例如:(x)如果存在indexQaQbQ则LindexQaQ?br>8) 控制单个索引的长度。用keyQnameQ?Q)(j)在数据的前面几个字符建立索引?br>9) 是短的键D好,最好用integer?br>10) 在查询中要用到索引Q用explain查看Q,可以减少ȝ盘的ơ数Q加速读取数据?br>11) 相近的键值比随机好。Auto_increment比uuid好?br>12) Optimize table可以压羃和排序indexQ注意不要频J运行?br>13) Analyze table可以更新数据?br>
2.2 Designing queries
查询语句的优化是一个Case by case的问题,不同的sql有不同的优化Ҏ(gu)Q在q里我只列出一些通用的技巧?br>
1) 在有index的情况下Q尽量保证查询用了(jin)正确的index。可以用EXPLAIN select …查看l果Q分析查询?br>2) 查询时用匹配的cd。例如select * from a where id=5Q?如果q里id是字W类型,同时有indexQ这条查询则使用不到indexQ会(x)做全表扫描,速度?x)很慢。正的应该?… where id=”5” Q加上引可明类型是字符?br>3) 使用--log-slow-queries –long-query-time=2查看查询比较慢的语句。然后用explain分析查询Q做Z化?br>
3. 服务器端优化
3.1 MySQL安装
MySQL有很多发行版本,最好用MySQL AB发布的二q制版本。也可以下蝲源代码进行编译安装,但是~译器和cd的一些bug可能?x)ɾ~译完成的MySQL存在潜在的问题?br>如果安装MySQL的服务器使用的是Intel公司的处理器Q可以用intel c++~译的版本,在Linux World2005的一PPT中提刎ͼ使用intel C++~译器编译的MySQL查询速度比正常版本快30%左右。Intel c++~译版本可以在MySQL官方|站下蝲?br>
3.2 服务器设|优?/font>
MySQL默认的设|性能很差Q所以要做一些参数的调整。这一节介l一些通用的参数调_(d)不涉?qing)具体的存储引擎Q主要指MyISAMQInnoDBQ相关优化在4中介l)(j)?br>
--character-setQ如果是单一语言使用单的character set例如latin1。尽量少用Utf-8Qutf-8占用I间较多?br>--memlockQ锁定MySQL只能q行在内存中Q避免swappingQ但是如果内存不够时有可能出现错误?br>--max_allowed_packetQ要_大,以适应比较大的SQL查询Q对性能没有太大影响Q主要是避免出现packet错误?br>--max_connectionsQserver允许的最大连接。太大的话会(x)出现out of memory?br>--table_cacheQMySQL在同一旉保持打开的table的数量。打开table开销比较大。一般设|ؓ(f)512?br>--query_cache_sizeQ?用于~存查询的内存大?br>--datadirQmysql存放数据的根目录Q和安装文g分开在不同的盘可以提高一Ҏ(gu)能?br>
4. 存储引擎优化
MySQL支持不同的存储引擎,主要使用的有MyISAM和InnoDB?br>
4.1 MyISAM
MyISAM理非事务表。它提供高速存储和(g)索,以及(qing)全文搜烦(ch)能力。MyISAM在所有MySQL配置里被支持Q它是默认的存储引擎Q除非配|MySQL默认使用另外一个引擎?br>
4.1.1 MyISAMҎ(gu)?/font>
4.1.1.1 MyISAM Properties
1) 不支持事务,宕机?x)破坏?br>2) 使用较小的内存和盘I间
3) Z表的锁,q发更新数据?x)出C重性能问题
4) MySQL只缓存I(y)ndexQ数据由O(jin)S~存
4.1.1.2 Typical MyISAM usages
1) 日志pȝ
2) 只读或者绝大部分是L作的应用
3) 全表扫描
4) 扚w导入数据
5) 没有事务的低q发??br>
4.1.2 MyISAM优化要点
1) 声明列ؓ(f)NOT NULLQ可以减磁盘存储?br>2) 使用optimize table做碎片整理,回收I闲I间。注意仅仅在非常大的数据变化后运行?br>3) Deleting/updating/adding大量数据的时候禁止用index。用ALTER TABLE t DISABLE KEYS?br>4) 讄myisam_max_[extra]_sort_file_size_大,可以显著提高repair table的速度?br>
4.1.3 MyISAM Table Locks
1) 避免q发insertQupdate?br>2) 可以使用insert delayedQ但是有可能丢失数据?br>3) 优化查询语句?br>4) 水^分区?br>5) 垂直分区?br>6) 如果都不起作用,使用InnoDB?br>
4.1.4 MyISAM Key Cache
1) 讄key_buffer_size variable。MyISAN最主要的cache讄Q用于缓存MyISAM表格的index数据Q该参数只对MyISAM有媄(jing)响。通常在只使用MyISAM的Server中设|?5-33%的内存大?br>2) 可以使用几个不同的Key CachesQ对一些hot dataQ?br>
a) SET GLOBAL test.key_buffer_size=512*1024;
b) CACHE INDEX t1.i1, t2.i1, t3 IN test;
2) Preload index到Cache中可以提高查询速度。因为preloading index是顺序的Q所以非常快?br>
a) LOAD INDEX INTO CACHE t1, t2 IGNORE LEAVESQ?br>

4.2 InnoDB
InnoDBlMySQL提供?jin)具有提交,回滚和崩溃恢复能力的事务安全QACID兼容Q存储引擎。InnoDB提供row level lockQƈ且也在SELECT语句提供一个Oracle风格一致的非锁定读。这些特色增加了(jin)多用户部|和性能。没有在InnoDB中扩大锁定的需要,因ؓ(f)在InnoDB中row level lock适合非常的I间。InnoDB也支持FOREIGN KEYU束。在SQL查询中,你可以自由地InnoDBcd的表与其它MySQL的表的类型؜合v来,甚至在同一个查询中也可以؜合?br>InnoDB是ؓ(f)在处理巨大数据量时获得最大性能而设计的。它的CPU使用效率非常高?br>InnoDB存储引擎已经完全与MySQL服务器整合,InnoDB存储引擎为在内存中缓存数据和索引而维持它自己的缓冲池?InnoDB存储它的表&索引在一个表I间中,表空间可以包含数个文Ӟ或原始磁盘分区)(j)。这与MyISAM表不同,比如在MyISAM表中每个表被存在分离的文件中。InnoDB 表可以是M大小Q即使在文g寸被限制ؓ(f)2GB的操作系l上?br>许多需要高性能的大型数据库站点上用了(jin)InnoDB引擎。著名的Internet新闻站点Slashdot.orgq行在InnoDB上?Mytrix, Inc.在InnoDB上存储超q?TB的数据,q有一些其它站点在InnoDB上处理^均每U?00ơ插?更新的负荗?br>4.2.1 InnoDBҎ(gu)?/font>
4.2.1.1 InnoDB Properties
1) 支持事务QACIDQ外键?br>2) Row level locks?
3) 支持不同的隔ȝ别?br>4) 和MyISAM相比需要较多的内存和磁盘空间?br>5) 没有键压~?br>6) 数据和烦(ch)引都~存在内存hash表中?br>
4.2.1.2 InnoDB Good For
1) 需要事务的应用?br>2) 高ƈ发的应用?br>3) 自动恢复?br>4) 较快速的Z主键的操作?br>
4.2.2 InnoDB优化要点
1) 量使用shortQinteger的主键?br>2) Load/Insert数据时按主键序。如果数据没有按主键排序Q先排序然后再进行数据库操作?br>3) 在Load数据是ؓ(f)讄SET UNIQUE_CHECKS=0QSET FOREIGN_KEY_CHECKS=0Q可以避免外键和唯一性约束检查的开销?br>4) 使用prefix keys。因为InnoDB没有key压羃功能?br>
4.2.3 InnoDB服务器端讑֮
innodb_buffer_pool_sizeQ这是InnoDB最重要的设|,对InnoDB性能有决定性的影响。默认的讄只有8MQ所以默认的数据库设|下面InnoDB性能很差。在只有InnoDB存储引擎的数据库服务器上面,可以讄60-80%的内存。更_一点,在内存容量允许的情况下面讄比InnoDB tablespaces?0%的内存大?br>
innodb_data_file_pathQ指定表数据和烦(ch)引存储的I间Q可以是一个或者多个文件。最后一个数据文件必L自动扩充的,也只有最后一个文件允许自动扩充。这P当空间用完后Q自动扩充数据文件就?x)自动增长(?MB为单位)(j)以容U额外的数据。例如:(x) innodb_data_file_path=/disk1/ibdata1:900M;/disk2/ibdata2:50M:autoextend两个数据文g攑֜不同的磁盘上。数据首先放在ibdata1中,当达?00M以后Q数据就攑֜ibdata2中。一旦达?0MBQibdata2以8MB为单位自动增ѝ如果磁盘满?jin),需要在另外的磁盘上面增加一个数据文件?br>
innodb_data_home_dirQ放|表I间数据的目录,默认在mysql的数据目录,讄到和MySQL安装文g不同的分区可以提高性能?br>
innodb_log_file_sizeQ该参数军_?jin)recovery speed。太大的话recovery׃(x)比较慢,太小?jin)?jing)响查询性能Q一般取256M可以兼顾性能和recovery的速度
?br>innodb_log_buffer_sizeQ磁盘速度是很慢的Q直接将log写道盘?x)?jing)响InnoDB的性能Q该参数讑֮?jin)log buffer的大,一?M。如果有大的blob操作Q可以适当增大?br>
innodb_flush_logs_at_trx_commit=2Q?该参数设定了(jin)事务提交时内存中log信息的处理?br>
1) =1Ӟ在每个事务提交时Q日志缓冲被写到日志文gQ对日志文g做到盘操作的刷新。Truly ACID。速度慢?br>2) =2Ӟ在每个事务提交时Q日志缓冲被写到文gQ但不对日志文g做到盘操作的刷新。只有操作系l崩溃或掉电(sh)才会(x)删除最后一U的事务Q不然不?x)丢׃务?br>3) =0Ӟ 日志~冲每秒一ơ地被写到日志文Ӟq且Ҏ(gu)志文件做到磁盘操作的h。Q何mysqldq程的崩溃会(x)删除崩溃前最后一U的事务
innodb_file_per_tableQ可以存储每个InnoDB表和它的索引在它自己的文件中?br>
transaction-isolation=READ-COMITTED: 如果应用E序可以q行在READ-COMMITED隔离U别Q做此设定会(x)有一定的性能提升?br>
innodb_flush_methodQ?讄InnoDB同步IO的方式:(x)
1) Default – 使用fsyncQ)(j)?br>2) O_SYNC 以sync模式打开文gQ通常比较慢?br>3) O_DIRECTQ在Linux上用Direct IO。可以显著提高速度Q特别是在RAIDpȝ上。避免额外的数据复制和double bufferingQmysql buffering 和OS bufferingQ?br>
innodb_thread_concurrencyQ?InnoDB kernel最大的U程数?br>
1) 最设|ؓ(f)(num_disks+num_cpus)*2?br>2) 可以通过讄?000来禁止这个限?br>
5. ~存
~存有很多种Qؓ(f)应用E序加上适当的缓存策略会(x)显著提高应用E序的性能。由于应用缓存是一个比较大的话题,所以这一部分q需要进一步调研?

6. Reference
1) http://www.mysqlperformanceblog.com/
2) Advanced MySQL Performance Optimization, Peter Zaitsev, Tobias Asplund, MySQL Users Conference 2005
3) Improving MySQL Server Performance with Intel C++ CompilerQPeter ZaitsevQLinux World 2005
4) MySQL Performance Optimization, Peter Zaitsev, Percona Ltd, OPEN SOURCE DATABASE CONFERENCE 2006
5) MySQL Server Settings Tuning, Peter Zaitsev, co-founder, Percona Ltd, 2007
6) MySQL Reference Manual

]]>
一些Informix SQL函数的用?/title><link>http://www.shnenglu.com/wmuu/archive/2006/10/30/14381.html</link><dc:creator>含笑半步?/dc:creator><author>含笑半步?/author><pubDate>Mon, 30 Oct 2006 06:44:00 GMT</pubDate><guid>http://www.shnenglu.com/wmuu/archive/2006/10/30/14381.html</guid><wfw:comment>http://www.shnenglu.com/wmuu/comments/14381.html</wfw:comment><comments>http://www.shnenglu.com/wmuu/archive/2006/10/30/14381.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/wmuu/comments/commentRss/14381.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/wmuu/services/trackbacks/14381.html</trackback:ping><description><![CDATA[ <p> <br />一、内部函?<br />  1、内部合计函?<br />    1QCOUNTQ?Q          q回行数 <br />    2QCOUNTQDISTINCT COLNAMEQ   q回指定列中唯一值的个数 <br />    3QSUMQCOLNAME/EXPRESSIONQ   q回指定列或表达式的数值和Q?<br />    4QSUMQDISTINCT COLNAMEQ    q回指定列中唯一值的?<br />    5QAVGQCOLNAME/EXPRESSIONQ   q回指定列或表达式中的数值^均?<br />    6QAVGQDISTINCT COLNAMEQ    q回指定列中唯一值的q_?<br />    7QMINQCOLNAME/EXPRESSIONQ   q回指定列或表达式中的数值最?<br />    8QMAXQCOLNAME/EXPRESSIONQ   q回指定列或表达式中的数值最大?<br />  2、日期与旉函数 <br />    1QDAYQDATE/DATETIME EXPRESSIONQ   q回指定表达式中的当月几?<br />    2QMONTHQDATE/DATETIME EXPRESSIONQ  q回指定表达式中的月?<br />    3QYEARQDATE/DATETIME EXPRESSIONQ   q回指定表达式中的年?<br />    4QWEEKDAYQDATE/DATETIME EXPRESSIONQ q回指定表达式中的当周星期几 <br />    5QDATEQNOT DATE EXPRESSIONQ     q回指定表达式代表的日期?<br />    6QTODAY                q回当前日期的日期?<br />    7QCURRENT[first to last]        q回当前日期的日期时间?<br />    8QCOLNAME/EXPRESSION UNITS PRECISION  q回指定_ֺ的指定单位数 <br />    9QMDYQMONTHQDAYQYEARQ       q回标识指定q、月、日的日期?<br />    10QDATETIMEQDATE/DATETIME EXPRESSIONQFIRST TO LAST q回表达式代表的日期旉?<br />    11QINTERVALQDATE/DATETIME EXPRESSIONQFIRST TO LAST q回表达式代表的旉间隔?<br />    12QEXTENDQDATE/DATETIME EXPRESSIONQ[first to last]Q返回经q调整的日期或日期时?/p> <p>?</p> <p>    例子1、和UNITS合用Q指定日期或旉单位(year,month,day,hour,minute,seond,fraction)Q?<br />       let tmp_date = today + 3 UNITS day <br />    例子2、let tmp_date = MDY(10,30,2002)  -- 2002-10-30 <br />    例子3、let tmp_date = today + interval(7) day to day --当前旉加上7天; <br />       注:(x)该功能与1怼Q?<br />    例子4、EXTEND转换日期或日期时间?<br />       let tmp_inthour = extend(datetime1,hour to hour) </p> <p>  3、代数函?<br />   1QABS(COLNAME/EXPRESSION)Q       取绝对?<br />   2QMODQCOLNAME/EXPRESSIONQDIVISORQ  q回除以除数后的模(余数Q?<br />   3QPOWQCOLNAME/EXPRESSIONQEXPONENTQ  q回一个值的指数?<br />     例子Qlet tmp_float = pow(2,3) --8.00000000 </p> <p>   4QROOTQCOLNAME/EXPRESSIONQ[index]Q  q回指定列或表达式的根?</p> <p>   5QSQRTQCOLNAME/EXPRESSIONQ      q回指定列或表达式的qx根?</p> <p>   6QROUNDQCOLNAME/EXPRESSIONQ[factor]Q?q回指定列或表达式的圆整化?<br />   7QTRUNCQCOLNAME/EXPRESSIONQ[factor]Q?q回指定列或表达式的截尾?<br />     说明Q上两者中FACTOR指定数位数Q若不指定,则ؓ(f)0Q若敎ͼ则整化到数点左边; <br />     注:(x)ROUND是在指定位上q行4?入;TRUNC是在指定位上直接截断Q?<br />     let tmp_float = round(4.555,2) --4.56 <br />     let tmp_float = trunc(4.555,2) --4.55 </p> <p>  4、指CҎ(gu)函数 <br />   1QEXPQCOLNAME/EXPRESSIONQ    q回指定列或表达式的指数?<br />   2QLOGNQCOLNAME/EXPRESSIONQ    q回指定列或表达式的自然Ҏ(gu)?<br />   3QLOG10QCOLNAME/EXPRESSIONQ   q回指定列或表达式的底数?0的对数?</p> <p>  5、三角函?<br />   1QCOSQRADIAN EXPRESSIONQ     q回指定弧度表达式的余u?<br />   2QSINQRADIAN EXPRESSIONQ     正u <br />   3QTANQRADIAN EXPRESSIONQ     正切 <br />   4QACOSQRADIAN EXPRESSIONQ     反余?<br />   5QASINQRADIAN EXPRESSIONQ     反正?<br />   6QATANQRADIAN EXPRESSIONQ     反正?<br />   7QATAN2QXQYQ           q回坐标QXQYQ的极坐标角度组?</p> <p>  6、统计函?<br />   1QRANGEQCOLNAMEQ    q回指定列的最大g最g?= MAXQCOLNAMEQ?MIN</p> <p>QCOLNAMEQ?<br />   2QVARIANCEQCOLNAMEQ  q回指定列的h方差Q?<br />   3QSTDEVQCOLNAMEQ    q回指定列的标准偏差Q?</p> <p>  7、其他函?<br />   1QUSER              q回当前用户?<br />   2QHEXQCOLNAME/EXPRESSIONQ    q回指定列或表达式的十六q制?<br />   3QLENGTHQCOLNAME/EXPRESSIONQ  q回指定字符列或表达式的长度 <br />   4QTRIMQCOLNAME/EXPRESSIONQ   删除指定列或表达式前后的字符 <br />   5QCOLNAME/EXPRESSION || COLNAME/EXPRESSION q回q在一L(fng)字符Q?</p> <p>二、IDS内部函数 <br />  1、DBSERVERNAME   q回数据库服务器名 let tmp_char=DBSERVERNAME <br />  2、SITENAME     q回数据库服务器名 let tmp_char=SITENAME <br />   说明Q两者功能相同; </p> <p>  3、DBINFOQ‘SPECIAL_KEYWORD')   q回只关键字?<br />   例子1Q返回数据中每个表的DBSPACE名称 <br />     select dbinfo('dbspace',partnum),tabname from systables <br />     where tabid>99 and tabtype='T' (OK) <br />   例子2Q返回Q何表中插入的最后一个SERIAL?<br />     select dbinfo('sqlca.sqlerrd1') from systables where tabid = 1 <br />   例子3Q返回最后一个SELECTQINSERTQUPDATEQDELETE或EXECUTE PROCEDURE语句处理的行敎ͼ <br />     select dbinfo('sqlca.sqlerrd2') from systables where tabid=1; </p> <p> <br /> <br /> (tng)</p> <h3>Date Manipulation</h3> <p>One of the more difficult concepts in Informix's handling of date and time values concerns the use of the variables in arithmetic or relational expressions. You can add or subtract DATE and DATETIME variables from each other. You can add or subtract an INTERVAL to a DATE or DATETIME. Table 1 shows the results of different types of operations on DATE and DATETIME values. </p> <p> <b>Table 1. Operations on DATE and DATETIME Variables</b> </p> <table cellspacing="1" cellpadding="5" border="1"> <tbody> <tr> <td> <font size="2"> <p> <b>First Operand</b> </p> </font> </td> <td> <font size="2"> <b>Operation</b> </font> </td> <td> <font size="2"> <p> <b>Second Operand</b> </p> </font> </td> <td> <font size="2"> <p> <b>Result</b> </p> </font> </td> </tr> <tr> <td> <font size="2"> <p>DATE</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">-</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">-</p> </font> </td> <td> <font size="2"> <p>DATE</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>DATE</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">+-</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">-</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">+-</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">+</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">+-</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">-</p> </font> </td> <td> <font size="2"> <p>CURRENT</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>CURRENT</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">-</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">+</p> </font> </td> <td> <font size="2"> <p>CURRENT</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>CURRENT</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">+-</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">+-</p> </font> </td> <td> <font size="2"> <p>UNITS</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">+-</p> </font> </td> <td> <font size="2"> <p>UNITS</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">*/</p> </font> </td> <td> <font size="2"> <p>NUMBER</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> </tr> </tbody> </table> <p>Notice that it's always okay to subtract one DATE or DATETIME value from another, as shown here: <font size="3"><pre>CURRENT - "07/01/1950" = INTERVAL (my age) "12/25/2000" ?CURRENT = INTERVAL (how long till Xmas?)</pre><p>In such a case, the result is always an INTERVAL variable. It would make no sense to add two DATE or DATETIME values together. What could such an addition represent? </p><h3>UNITS Keyword</h3><p>When working with INTERVAL values, sometimes it is necessary to specify the precision with which you are dealing. For example, suppose you have the following field defined: <font size="3"></font></p><pre>lead_time INTERVAL DAY to DAY</pre><p>To add 10 days to the lead time you could use a SQL statement like this: <font size="3"></font></p><pre>SELECT lead_time + INTERVAL(10) DAY to DAY FROM orders</pre><p>You could achieve the same results using the UNITS keyword: <font size="3"></font></p><pre>SELECT lead_time + 10 UNITS DAY FROM orders </pre><p>Like most other programming languages, SQL often allows you to achieve the same ends with different statements. Sometimes the choice is one of personal style. Other times, one format fits in better with a structured style of code writing than another format does. </p><h3>Functions</h3><p>There are several built-in functions that affect date and time calculations. They can apply to either DATE or DATETIME values, with some exceptions. </p><h4>TODAY</h4><p>The TODAY function returns a DATE data value representing the current date. For example, you could execute a SQL function like this: <font size="3"></font></p><pre>UPDATE member SET change_date = TODAY WHER member_number = 12345</pre><h4>CURRENT</h4><p>The CURRENT function is similar to the TODAY function, except it returns a DATETIME value. Without specific qualifiers, the default is YEAR to FRACTION(3). You can change the precision by using the same YEAR to FRACTION qualifiers as you use for DATETIMES. Thus, this would be legal: <font size="3"></font></p><pre>SELECT * from member WHERE elapsed_time < CURRENT YEAR to DAY</pre><h4>DATE</h4><p>The DATE function takes as input a non-DATE value such as CHAR, DATETIME, or INTEGER and returns the corresponding DATE value. For example, the following SQL translates a CHARACTER value to a DATE: <font size="3"></font></p><pre>SELECT * from member WHERE enrollment_date > DATE('01/01/99')</pre><h4>DAY</h4><p>This function returns an integer representing the day of the month. Here's an example: <font size="3"></font></p><pre>SELECT * from member WHERE DAY(enrollment_date) > DAY(CURRENT)</pre><h4>MONTH</h4><p>This performs like the DAY function except it returns an integer between 1 and 12 representing the month: <font size="3"></font></p><pre>SELECT * from member WHERE enrollment_date > MONTH('01/01/99')</pre><h4>WEEKDAY</h4><p>This returns an integer representing the day of the week, with 0 being Sunday and 6 being Saturday: <font size="3"></font></p><pre>SELECT * from member WHERE WEEKDAY(enrollment_date) > WEEKDAY(CURRENT)</pre><h4>YEAR</h4><p>This function is like the ones above, only it returns a four-digit integer representing the year. </p><h4>EXTEND</h4><p>This function allows you to use different precisions in a DATETIME than you have specified in the declaration of the variable. It uses the same FIRST to LAST syntax as the DATETIME variables. This function is used to adjust the precision of a DATETIME variable to match the precision of an INTERVAL that you are using in a calculation. If the INTERVAL value has fields that are not part of the DATETIME value that you are using in a calculation, use the EXTEND function to adjust the precision of the DATETIME. EXTEND can either increase or decrease the precision of a DATETIME, depending upon the FIRST and LAST values. </p><p>Suppose myvariable is declared as DATETIME YEAR to DAY. If you want to add or subtract an INTERVAL defined as MINUTE, you first have to extend the DATETIME as follows: <font size="3"><pre>SELECT EXTEND(myvariable, YEAR to MINUTE) ? INTERVAL(5) MINUTE to MINUTE FROM member</pre><p>The resulting value will be DATETIME YEAR to MINUTE. </p><h4>MDY</h4><p>The MDY function converts three-integer values into a DATE format. The first integer is the month and must evaluate to an integer in the range 1?2. The second integer is the day and must evaluate to a number in the range from 1 to however many days are in the particular month (28?1). The third expression is the year and must be a four-digit integer. Thus, the following MDY functions would each be valid: <font size="3"></font></p><pre>MDY(7,1,1950)</pre><p>returns a DATE of "07/01/50" <font size="3"></font></p><pre>MDY(MONTH(TODAY), 1, YEAR(TODAY))</pre><p>returns a DATE equal to the first day of the current month in the current year </p><p>Informix has extensive capabilities for manipulating dates and times, which can make for long and complex SQL statements. Using the three time-related data types and the time-related functions and keywords, you can accomplish almost any type of manipulation of time data. Unfortunately, getting there may be cryptic and painful. If you regularly do extensive date and time manipulation, you should understand all of the intricacies of these data structures. </p><p>Have fun! (tng)<br /></p></font></p></font><br /> (tng)</p> <img src ="http://www.shnenglu.com/wmuu/aggbug/14381.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/wmuu/" target="_blank">含笑半步?/a> 2006-10-30 14:44 <a href="http://www.shnenglu.com/wmuu/archive/2006/10/30/14381.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>informix数据复制的资?/title><link>http://www.shnenglu.com/wmuu/archive/2006/05/17/7290.html</link><dc:creator>含笑半步?/dc:creator><author>含笑半步?/author><pubDate>Tue, 16 May 2006 17:13:00 GMT</pubDate><guid>http://www.shnenglu.com/wmuu/archive/2006/05/17/7290.html</guid><wfw:comment>http://www.shnenglu.com/wmuu/comments/7290.html</wfw:comment><comments>http://www.shnenglu.com/wmuu/archive/2006/05/17/7290.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/wmuu/comments/commentRss/7290.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/wmuu/services/trackbacks/7290.html</trackback:ping><description><![CDATA[ibm|页上的信息可以用一个字来Ş容,乱!像杂货堆。在ibm上找东西Q经常是W一ơ找刎ͼW二ơ就找不C(jin)Q迷路了(jin)Q?br /><a >http://www.dvbbs.net/tech/data/2006042553131.asp</a> (tng)q程数据复制<br /><a >http://fanqiang.chinaunix.net/db/informix/2001-06-12/1402.shtml</a> (tng)I(yng)nformix动态服务器配置--6.相关基本概念<br /><a >http://fanqiang.chinaunix.net/db/informix/2005-09-07/3624.shtml</a> (tng)I(yng)NFORMIXQONLINE数据库三U备份方法的选择<br /><a >http://fanqiang.chinaunix.net/db/informix/2005-11-14/3842.shtml</a> (tng)I(yng)nfomix数据库的备䆾与恢?br /><a >http://www.linuxmine.com/3348.html</a> (tng) (tng) (tng) (tng) (tng) (tng)I(yng)NFORMIX 的数据复制技?br /><br /><a >http://www.pcvz.com/Program/Database/Oracle/</a> (tng)有关Oracle?br /><br /><img src ="http://www.shnenglu.com/wmuu/aggbug/7290.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/wmuu/" target="_blank">含笑半步?/a> 2006-05-17 01:13 <a href="http://www.shnenglu.com/wmuu/archive/2006/05/17/7290.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.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.y5xx.cn" target="_blank">2021ƷþþƷ</a>| <a href="http://www.air-walk.com.cn" target="_blank">þ99Ʒþþþþþò</a>| <a href="http://www.kengsai.cn" target="_blank">˾þþþƷ</a>| <a href="http://www.wltceiling.cn" target="_blank">޹þþþþþ</a>| <a href="http://www.xxysw.com.cn" target="_blank">ŷþþþ9999</a>| <a href="http://www.rainbow-city.cn" target="_blank">ɫۺϾþۺۺ</a>| <a href="http://www.169diaoyu.cn" target="_blank">ھƷþþþþþɬ</a>| <a href="http://www.uubux.com.cn" target="_blank">ۺϳ˾þС˵</a>| <a href="http://www.248hh.cn" target="_blank">ֻоƷþ</a>| <a href="http://www.fvnnv.cn" target="_blank">ŷպƷþþþ</a>| <a href="http://www.kvgr.cn" target="_blank">Ʒþþþþ</a>| <a href="http://www.fuzd88.cn" target="_blank">ƷѾþþþþþ</a>| <a href="http://www.anglein.cn" target="_blank">ɫۺϾþ </a>| <a href="http://www.033009.cn" target="_blank">Ʒþþþþø</a>| <a href="http://www.dlhybjgs.cn" target="_blank">þþƷһ</a>| <a href="http://www.xspree.cn" target="_blank">պƷþþþþ</a>| <a href="http://www.qymlw.cn" target="_blank">ĻƷѾþ</a>| <a href="http://www.uyqr.cn" target="_blank">þۺϺݺɫۺ</a>| <a href="http://www.dykh-tech.cn" target="_blank">޹Ʒþ98</a>| <a href="http://www.qdyshl.cn" target="_blank">ŷһþþþþþôƬ</a>| <a href="http://www.j16dr.cn" target="_blank">99þþƷѹƬ</a>| <a href="http://www.jxlbw.cn" target="_blank">þ99ƷþֻоƷ</a>| <a href="http://www.e8ux.cn" target="_blank">þþƷAVþþ</a>| <a href="http://www.fgzpf.cn" target="_blank">ľƷ99þù </a>| <a href="http://www.shoucunshiyuan.cn" target="_blank">þþƷһպ</a>| <a href="http://www.superpic.cn" target="_blank">볬鱬Ļþ </a>| <a href="http://www.sinaer.cn" target="_blank">˳AVɫۺϾþ</a>| <a href="http://www.gkxee.cn" target="_blank">þøԴƷ999</a>| <a href="http://www.mengyun868.cn" target="_blank">þۺһ</a>| <a href="http://www.ycsxw.cn" target="_blank">Ʒ׾þAAAƬ69</a>| <a href="http://www.168zw.cn" target="_blank">99ȶǾƷþþþþ</a>| <a href="http://www.sskmk.cn" target="_blank">þùѹۿƷ</a>| <a href="http://www.po18h.cn" target="_blank">۲ӰԺþ99</a>| <a href="http://www.zjhgkjjt.com.cn" target="_blank">þĻȫ </a>| <a href="http://www.mengyun868.cn" target="_blank">91޹˾þþƷַ</a>| <a href="http://www.ehfad.cn" target="_blank">9þ9þþƷ</a>| <a href="http://www.fjzgh.cn" target="_blank">þþþӰԺ</a>| <a href="http://www.3gdd.cn" target="_blank">þþƷѴƬƬ</a>| <a href="http://www.mmexse.cn" target="_blank">þˬˬAVƬ</a>| <a href="http://www.gkvw.cn" target="_blank">þþƷһۺ</a>| <a href="http://www.setocaster.cn" target="_blank">޾Ʒþǧն</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>