??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品一级二级三级,国产精品嫩草影院av蜜臀,密臀av在线播放http://www.aygfsteel.com/lsbwahaha/archive/2009/11/04/301122.html胡鹏胡鹏Wed, 04 Nov 2009 10:20:00 GMThttp://www.aygfsteel.com/lsbwahaha/archive/2009/11/04/301122.htmlhttp://www.aygfsteel.com/lsbwahaha/comments/301122.htmlhttp://www.aygfsteel.com/lsbwahaha/archive/2009/11/04/301122.html#Feedback0http://www.aygfsteel.com/lsbwahaha/comments/commentRss/301122.htmlhttp://www.aygfsteel.com/lsbwahaha/services/trackbacks/301122.html         
       今天在熟悉我们的目的时候,sql中看到FORCE INDEXQ额Q都不知道什么东东,有什么特别用处吗Q?查了下资料,原来是这样啊Q发C般不搞复杂sqlQ而且复杂sql DBA也不允许Q但优化的sql q是有必要了解下。(一般来说也不太会用,总被DBA pk了)

        下面部分转:
        对于l常使用oracle的朋友可能知道,oracle的hint功能U类很多Q对于优化sql语句提供了很多方法。同P在mysql里,也有cM的hint功能。下面介l一些常用的?

      1。强制烦?FORCE INDEX

SELECT * FROM TABLE1 FORCE INDEX (FIELD1) …

以上的SQL语句只用徏立在FIELD1上的索引Q而不使用其它字段上的索引?

       2。忽略烦?IGNORE INDEX

SELECT * FROM TABLE1 IGNORE INDEX (FIELD1, FIELD2) …

在上面的SQL语句中,TABLE1表中FIELD1和FIELD2上的索引不被使用?

       3。关闭查询缓?SQL_NO_CACHE

SELECT SQL_NO_CACHE field1, field2 FROM TABLE1;

有一些SQL语句需要实时地查询数据Q或者ƈ不经怋用(可能一天就执行一两次Q?q样需要把~冲关了,不管q条SQL语句是否被执行过Q服务器都不会在~冲Z查找Q每ơ都会执行它?

      4。强制查询缓?SQL_CACHE

SELECT SQL_CALHE * FROM TABLE1;

如果在my.ini中的query_cache_type设成2Q这样只有在使用了SQL_CACHE后,才用查询缓册Ӏ?

     5。优先操?HIGH_PRIORITY

HIGH_PRIORITY可以使用在select和insert操作中,让MYSQL知道Q这个操作优先进行?

SELECT HIGH_PRIORITY * FROM TABLE1;

     6。滞后操?LOW_PRIORITY

LOW_PRIORITY可以使用在insert和update操作中,让mysql知道Q这个操作滞后?

update LOW_PRIORITY table1 set field1= where field1= …

    7。g时插?INSERT DELAYED

INSERT DELAYED INTO table1 set field1= …

INSERT DELAYED INTOQ是客户端提交数据给MySQLQMySQLq回OK状态给客户端。而这是ƈ不是已经数据插入表Q而是存储在内存里面等待排队。当mysql有空余时Q再插入。另一个重要的好处是,来自许多客户端的插入被集中在一Pq被~写入一个块。这比执行许多独立的插入要快很多。坏处是Q不能返回自动递增的IDQ以及系l崩溃时QMySQLq没有来得及插入数据的话Q这些数据将会丢失?

     8 。强制连接顺?STRAIGHT_JOIN

SELECT TABLE1.FIELD1, TABLE2.FIELD2 FROM TABLE1 STRAIGHT_JOIN TABLE2 WHERE …

׃面的SQL语句可知Q通过STRAIGHT_JOINMySQL按TABLE1、TABLE2的顺序连接表。如果你认ؓ按自q序比MySQL推荐的顺序进行连接的效率高的话,可以通过STRAIGHT_JOIN来确定连接顺序?

    9。强制用时表 SQL_BUFFER_RESULT

SELECT SQL_BUFFER_RESULT * FROM TABLE1 WHERE …

当我们查询的l果集中的数据比较多Ӟ可以通过SQL_BUFFER_RESULT.选项强制结果集攑ֈ临时表中Q这样就可以很快地释放MySQL的表锁(q样其它的SQL语句可以对q些记录q行查询了)Qƈ且可以长旉Cؓ客户端提供大记录集?

   10。分l用时表 SQL_BIG_RESULT和SQL_SMALL_RESULT

SELECT SQL_BUFFER_RESULT FIELD1, COUNT(*) FROM TABLE1 GROUP BY FIELD1;

一般用于分l或DISTINCT关键字,q个选项通知MySQLQ如果有必要Q就查询结果放C时表中,甚至在时表中进行排序。SQL_SMALL_RESULT比vSQL_BIG_RESULT差不多,很少使用?/p>

胡鹏 2009-11-04 18:20 发表评论
]]>
ibatis?$ ?# ?区别?http://www.aygfsteel.com/lsbwahaha/archive/2009/04/16/266026.html胡鹏胡鹏Thu, 16 Apr 2009 12:13:00 GMThttp://www.aygfsteel.com/lsbwahaha/archive/2009/04/16/266026.htmlhttp://www.aygfsteel.com/lsbwahaha/comments/266026.htmlhttp://www.aygfsteel.com/lsbwahaha/archive/2009/04/16/266026.html#Feedback0http://www.aygfsteel.com/lsbwahaha/comments/commentRss/266026.htmlhttp://www.aygfsteel.com/lsbwahaha/services/trackbacks/266026.html     一个项目中在写ibatis中的sql语句Ӟwhere user_id in (#user_id_list# ), q行时L不行Q后来上|查了查Q才知道q里不该?,而应该用$,随即查了??的区别. 
ȝ如下: 
1.#是把传入的数据当作字W串Q如#user_id_list#传入的是1,2,则sql语句生成是这Pin ('1,2') ,当然不可?br />
2.$传入的数据直接生成在sql里,?user_id_list#传入的是1,2,则sql语句生成是这Pin(1,2) q就对了Q?#160;

3.#方式能够很大E度防止sql注入Q?#160;

4.$方式无法方式sql注入Q?#160;

5.$方式一般用于传入数据库对象Q例如传入表? 

6.一般能?的就别用$. 
直观的说 
#str# 出来的效果是  'str' 
$str$ 出来的效果是  str 

另外  ##只能用在特定的几个地?$$可以用在M地方  比如 order by $str$ 

你甚臛_以直接写  $str$  ?order by q个字串攑֜str里传q来 
今天׃N久,才把q个问题搞出来,郁闷下,不过出来了也挺开心的Q终于搞定啦Q嘿嘿~Q~   


胡鹏 2009-04-16 20:13 发表评论
]]>
ORCALE 自动~号http://www.aygfsteel.com/lsbwahaha/archive/2009/04/06/264098.html胡鹏胡鹏Mon, 06 Apr 2009 04:20:00 GMThttp://www.aygfsteel.com/lsbwahaha/archive/2009/04/06/264098.htmlhttp://www.aygfsteel.com/lsbwahaha/comments/264098.htmlhttp://www.aygfsteel.com/lsbwahaha/archive/2009/04/06/264098.html#Feedback0http://www.aygfsteel.com/lsbwahaha/comments/commentRss/264098.htmlhttp://www.aygfsteel.com/lsbwahaha/services/trackbacks/264098.htmlTB_OA_DUANXIN 表中?   OADX_ID  字段动增?/div>
首先创个sequence :
 create sequence SEQ_TB_OA_DUANXIN
minvalue 1
maxvalue 9999999999
start with 1
increment by 1
cache 20;
 
再创Z触发?  
create or replace trigger TR_TB_OA_DUANXIN_ID_INC
  before insert on TB_OA_DUANXIN
  for each row
declare
  -- local variables here
tmp NUMBER;
begin
  select SEQ_TB_OA_DUANXIN.nextval into tmp from dual;
  :new.OADX_ID := to_char(tmp);
end TR_TB_OA_DUANXIN_ID_INC;


胡鹏 2009-04-06 12:20 发表评论
]]>
如何在mysql中设|不同的字符?/title><link>http://www.aygfsteel.com/lsbwahaha/archive/2009/04/06/264097.html</link><dc:creator>胡鹏</dc:creator><author>胡鹏</author><pubDate>Mon, 06 Apr 2009 04:19:00 GMT</pubDate><guid>http://www.aygfsteel.com/lsbwahaha/archive/2009/04/06/264097.html</guid><wfw:comment>http://www.aygfsteel.com/lsbwahaha/comments/264097.html</wfw:comment><comments>http://www.aygfsteel.com/lsbwahaha/archive/2009/04/06/264097.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lsbwahaha/comments/commentRss/264097.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lsbwahaha/services/trackbacks/264097.html</trackback:ping><description><![CDATA[需要设|server character set , database character set, client character setQ如果有一个不大一P有可能Dq <p>?/p> <p>server character setQclient character set可以在mysql config文g中设|,比如讄为utf8Q?/p> <p>vi /etc/my.cnf</p> <p># server<br /> [mysqld]<br /> default_character_set=utf8</p> <p># client<br /> [mysql]<br /> default_character_set=utf8</p> <p>然后重启mysqld。设|database 字符集,可以在mysql中进行。对于新建database:</p> <p>create database database_name default character set utf8;</p> <p>对于已存在database:<br /> alter database database_name default character set utf8;</p> <p>改进jdbc client的字W集Q 在设|连接字串时讑֮Q如</p> <p><br /> jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8<br /> </p> <img src ="http://www.aygfsteel.com/lsbwahaha/aggbug/264097.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lsbwahaha/" target="_blank">胡鹏</a> 2009-04-06 12:19 <a href="http://www.aygfsteel.com/lsbwahaha/archive/2009/04/06/264097.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据?备䆾? 无法q原 解决办法(SQLSERVER)http://www.aygfsteel.com/lsbwahaha/archive/2009/04/06/264096.html胡鹏胡鹏Mon, 06 Apr 2009 04:18:00 GMThttp://www.aygfsteel.com/lsbwahaha/archive/2009/04/06/264096.htmlhttp://www.aygfsteel.com/lsbwahaha/comments/264096.htmlhttp://www.aygfsteel.com/lsbwahaha/archive/2009/04/06/264096.html#Feedback0http://www.aygfsteel.com/lsbwahaha/comments/commentRss/264096.htmlhttp://www.aygfsteel.com/lsbwahaha/services/trackbacks/264096.html        可以直接复制数据库文? xxx.mdf ?nbsp; xxx.ldf
 
        ?sp_attach_db  存储q程 p搞定.
 
CZ  
  下面的示例将   pubs   中的两个文g附加到当前服务器? 
   
  EXEC   sp_attach_db   @dbname   =   N'pubs',    
        @filename1   =   N'c:\Program   Files\Microsoft   SQL   Server\MSSQL\Data\pubs.mdf',    
        @filename2   =   N'c:\Program   Files\Microsoft   SQL   Server\MSSQL\Data\pubs_log.ldf'  
 
 
N表示Unicode的含?pcd中有varchar和nvarchar一?一个Unicode字符占两个字?使用N'的情况主要是在双字节pȝ环境中强制系l对每个字符用Unicode标准来解?否则如果你的数据?mdf文g是中文名而又不加N'的话,数据库加载后名称可能变成ؕ?因ؓpȝ按单字节处理字符造成!
 
 
............................................................
 
 
如果认是SQL   SERVER无法启动,h照下面步骤操?  
  1.重装SQL   SERVER(注意要保留原来数据库的数据库文g,日志文g可不?  
  2.在SQL   Analysis中用sp_attach_db数据库加到服务? 
   
  sp_attach_db用法:  
  sp_attach_db  
  数据库附加到服务器? 
   
  语法  
  sp_attach_db   [   @dbname   =   ]   'dbname'  
          ,   [   @filename1   =   ]   'filename_n'   [   ,...16   ]  
   
  参数  
  [@dbname   =]   'dbname'  
   
  要附加到服务器的数据库的名称。该名称必须是唯一的。dbname   的数据类型ؓ   sysnameQ默认gؓ   NULL?   
   
  [@filename1   =]   'filename_n'  
   
  数据库文件的物理名称Q包括\径。filename_n   的数据类型ؓ   nvarchar(260)Q默认gؓ   NULL。最多可以指?  16   个文件名。参数名UC   @filename1   开始,递增?  @filename16。文件名列表臛_必须包括LӞL件包含指向数据库中其它文件的表。该列表q必d括数据库分离后所有被Ud的文件? 
   
  q回代码? 
  0Q成功)?  1Q失败)  
   
  l果? 
 
   
  注释  
  只应对以前用显?  sp_detach_db   操作从数据库服务器分ȝ数据库执?  sp_attach_db。如果必L定多?  16   个文Ӟ请用带?  FOR   ATTACH   子句?  CREATE   DATABASE? 
   
  如果数据库附加到的服务器不是该数据库从中分ȝ服务器,q且启用了分ȝ数据库以q行复制Q则应该q行   sp_removedbreplication   从数据库删除复制? 
   
  权限  
  只有   sysadmin   dbcreator   固定服务器角色的成员才能执行本过E?nbsp; 


胡鹏 2009-04-06 12:18 发表评论
]]>
SQL Server 安装文g挂v错误解决办法http://www.aygfsteel.com/lsbwahaha/archive/2009/04/06/264095.html胡鹏胡鹏Mon, 06 Apr 2009 04:16:00 GMThttp://www.aygfsteel.com/lsbwahaha/archive/2009/04/06/264095.htmlhttp://www.aygfsteel.com/lsbwahaha/comments/264095.htmlhttp://www.aygfsteel.com/lsbwahaha/archive/2009/04/06/264095.html#Feedback0http://www.aygfsteel.com/lsbwahaha/comments/commentRss/264095.htmlhttp://www.aygfsteel.com/lsbwahaha/services/trackbacks/264095.html刚开始?/span>SQL Server 2000Q就l了我一个下马威。不q最l还是解决了。具体情况和解决Ҏ:
  安装SQL Server 2000的操作系l是Windows 2000 Profession Edition,安装体中文标准版。会提示该版本的操作pȝ不能安装服务器组Ӟ只能安装SQL Server 2000个h版。于是退出,选择安装个h版。却出现了新的错误: 以前的某个程序安装已在安装计机上创建挂L文g操作。运行安装程序之前必重新启动计机?/span>  接着按照提示重启计算机,再安装,仍然出现同样的提C。再|上查找相关资料Q得知是安装E序在先前的安装q程中在pȝ注册表留下某些信息,D不能安装。于是经q多ơ试Q发现删除掉如下键g息即可安装:在运行窗口输?/span>regeditQ打开注册表编辑器Q在HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager中找?/span>PendingFileRenameOperationsQ?/span> 删除该键|关闭注册表编辑器。重新安?/span>SQL Server 2000Q哈哈,久违的安装界面终于Q出水面了?/span>
  q个键值是安装E序暂挂目Q只要找到对应的应用E序清除掉就行了?/span>



胡鹏 2009-04-06 12:16 发表评论
]]>
վ֩ģ壺 ˳| | ¸| ¡| | ˮ| Ӱ| | | | ̫| ɽ| ֿ| | ͨ| | | ֹ| ¹Ȫ| | ԭ| | | | | ˳| | | ǧ| | ͬ| | | ־| Ҷ| | ̩| ѭ| | | |