Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Oracle 10g SQL ÓÅ»¯ÔÙѧϰ

´Ó8iµ½10g£¬Oracle²»¶Ï½ø»¯×Ô¼ºµÄSQL TuningÖÇÄÜ£¬Ò»Ð©Ãؼ®¼¶µÄÓÅ»¯¿Ú¾÷ÒѾ­Ê§Ð§¡£
   µ«ÎÒϲ»¶Ê§Ð§£¬²»Óüǿھ÷£¬²Ù¸öToad for Oracle Xpert
 £¬°´ÕÕ´ó·½ÏòÊæÊæ·þ·þµÄ
µ÷ÓŲÅÊǰ®×öµÄÊÂÇé¡£
1.Excution Plan
     Excution
PlanÊÇ×î»ù±¾µÄµ÷ÓŸÅÄ²»¹ÜÄãµÄµ÷ÓÅ´µµÃÈçºÎÌ컨ÂҶ飬½á¹û»¹ÊÇÒªÓÉExcution planÀ´ÏÔʾOracle
×îÖÕÓÃʲôË÷Òý¡¢°´Ê²Ã´Ë³ÐòÁ¬½Ó¸÷±í£¬Full Table Scan»¹ÊÇAccess by Rowid
Index£¬Æ¿¾±ÔÚʲôµØ·½¡£Èç¹ûûÓÐËüµÄÖ¸µ¼£¬Ò»Çе÷ÓŶ¼ÊÇÃɵġ£
2.Toad for Oracle
Xpert
    ÓÃËüÀ´µ÷ÓÅÔÚÕæµÄºÃÊæ·þ¡£Quest
ÍÌ
²¢ÁËLeccoºó£¬½«ËüÕûºÏµ½ÁËToad µÄSQL
TunningÀïÃæ£º×îÇåÎúµÄÖ´Ðмƻ®ÏÔʾ£¬×Ô¶¯Éú³ÉNÌõµÈ¼ÛSQL¡¢¸ø³öÓÅ»¯½¨Ò飬²»Í¬SQLÖ´Ðмƻ®µÄ¶Ô±È£¬»¹ÓÐʵ¼ÊÖ´ÐеÄÂß¼­¶Á¡¢ÎïÀí¶ÁÊý¾ÝµÈµÈÒ»
Ä¿ÁËÈ»¡£
3.Ë÷Òý
   ´ó²¿·ÖµÄÐÔÄÜÎÊÌâÆäʵ¶¼ÊÇË÷ÒýÓ¦ÓõÄÎÊÌ⣬Where×Ӿ䡢
Order By¡¢Group By ¶¼ÒªÓõ½Ë÷Òý¡£
   Ò»°ã¿ª·¢ÈËÔ±ÈÏΪ½«Ë÷Òý½¨È«Á˾ͿÉÒÔÏ塈ȯ¼ÒÁË£¬ÊµÔò»¹ÓÐÆÄ¶àµÄ˼Á¿ºÍÏÝÚå¡£
3.1
Ë÷ÒýÁÐÉϲ»Òª½øÐмÆËã
      ÕâÊÇ×î×îÆÕ±éµÄʧЧÏÝÚ壬±ÈÈçwhere
trunc(order_date)=trunc(sysdate),
i+2>4¡£Ë÷ÒýʧЧµÄÔ­ÒòÒ²¼òµ¥£¬Ë÷ÒýÊÇÕë¶ÔÔ­Öµ½¨µÄ¶þ²æÊ÷£¬Ä㽫ÁÐÖµ*3/4+2ÕÛÌÚÒ»·¬ºó£¬Ô­À´µÄ¶þ²æÊ÷µ±È»¾ÍÓò»ÉÏÁË¡£½â¾öµÄ·½·¨:
¡¡
1.¡¡»»³ÉµÈ¼ÛÓï·¨£¬±ÈÈçtrunc(order_date) »»³É
where order_date
>
trunc(sysdate)
-
1
 
and
 order_date
<
trunc(sysdate)
+
1
¡¡ 2.    ÌØ±ðΪ¼ÆË㽨Á¢º¯ÊýË÷Òý
create
 
index
 £É_XXXX 
on
 shop_order(trunc(order_date))
    3.    ½«¼ÆËã´ÓµÈºÅ×ó±ßÒÆµ½ÓÒ±ß
¡¡ÕâÊÇÕë¶ÔijЩÎÞÐÄ֮ʧµÄ¾ÀÕý£¬°Ña*2>4¡¡¸ÄΪa>4/2£»°Ñ
TO_CHAR(zip) = '94002' ¸ÄΪzip = TO_NUMBER('94002');
3.2
CBOÓëË÷ÒýÑ¡ÔñÐÔ
     ½¨ÁËË÷ÒýÒ²²»Ò»¶¨»á±»OracleÓõ쬾ÍÏñ¸öÌôʳµÄº¢×Ó¡£»ùÓڳɱ¾µÄÓÅ»¯Æ÷(CBO,
Cost-Based Optimizer)£¬»áÏÈ¿´¿´±íµÄ´óС£¬»¹ÓÐË÷ÒýµÄÖØ¸´¶È£¬ÔÙ¾ö¶¨Óû¹ÊDz»ÓᣱíÖÐÓÐ100 Ìõ¼Ç¼¶øÆäÖÐÓÐ80
¸ö²»Öظ´µÄË÷Òý¼üÖµ. Õâ¸öË÷ÒýµÄÑ¡ÔñÐÔ¾ÍÊÇ80/100 =
0.8£¬ÁôÒâToadÀïÏÔʾË÷ÒýµÄSelectiveº


Ïà¹ØÎĵµ£º

OracleÖг£ËµµÄHA¡¢RAC¡¢DataguradµÄÇø±ð

HA
ÊÇHigh Availability
µÄÊ××Öĸ×éºÏ£¬·­Òë¹ýÀ´£¬¿ÉÒÔ½Ð×ö¸ß¿ÉÓ㬻ò¸ß¿ÉÓÃÐÔ£¬¸ß¿ÉÓ㨻·¾³£©¡£ÎÒ¾õµÃÓ¦¸Ã˵HAÊÇÒ»¸ö¹ÛÄî¶ø²»ÊÇÒ»Ïî»òһϵÁоßÌå¼¼Êõ£¬¾ÍÏóÍø¸ñÒ»Ñù¡£×÷¹ýϵͳ
·½°¸¾ÍÖªµÀÁË£¬ÆÀ¼ÛϵͳµÄÐÔÄܵ±ÖоÍÓÐÒ»Ïî¸ß¿ÉÓ᣹ãÒåµÄ¸ß¿ÉÓÃÉæ¼°µ½ÏµÍ³µÄ¸÷¸ö·½Ã棬¼òµ¥À´Ëµ£¬ÈÃϵͳ²»»áÖжÏ
ÔËÐУ¬¾ÍÊǸ߿ÉÓᣰüÀ¨È ......

ÄÚÁª SQL PL(Inline SQL PL)

----start
    Í¨³£SQL PLÖ»ÄÜʹÓÃÔÚ´æ´¢¹ý³Ì¡¢´¥·¢Æ÷¡¢Óû§×Ô¶¨Ò庯ÊýÖУ¬µ«ÊÇÓÐÒ»²¿·ÖSQL PLÒ²¿ÉÒÔÖ±½ÓÔÚÃüÁîÐб༭Æ÷»ò½Å±¾ÖÐʹÓã¬ËüÃÇÊÇ£º
DECLARE <variable>
SET
CASE
FOR
GET DIAGNOSTICS
GOTO
IF
RETURN
SIGNAL
WHILE
ITERATE
LEAVE 
ÒÔÏÂSQL PL²»ÄÜÖ±½ÓÔÚÃüÁîÐб༭Æ÷»ò ......

ÈçºÎÔÚMS SQL ProfilerÀïÃæ¹ýÂËÄÚǶµÄ´æ´¢¹ý³Ì

×î½üÔÚ¸ãÐÔÄÜÓÅ»¯£¬ÓÉÓÚÏîÄ¿µÄÐèÒª£¬ÎÒÃDZØÐ뾡¿ÉÄܵļõÉÙÊý¾Ý¿âµÄµ÷Óã¬ÓÚÊÇÎÒÃÇ×öÁ˲»ÉÙµÄÓÅ»¯£¬±ÈÈçÔ­ÏÈÐèÒª3¸öÊý¾Ý¿âµ÷Óõģ¬ÏÖÔÚÎÒÃǰÑËüÕûºÏµ½Ò»¸ö´æ´¢¹ý³ÌÖУ¬ÕâÑùÖ»ÐèÒªÒ»¸ö·½·¨¼´¿É¡£
µ«ÕâÒ²²úÉúÁËÁíÍâÒ»¸öÎÊÌ⣬֮ǰÎÒÃÇÊÇʹÓÃMS SQL ProfilerÈ¥¸ú×ÙÊý¾Ý¿âµÄµ÷Óõģ¬ÓÉÓÚÕûºÏÁ˲»ÉÙ´æ´¢¹ý³Ì£¬±ÈÈçÔ­ÏÈÐèÒªÈý¸ö´æ ......

SQL SERVER 2005¹ý³Ì·ÖÒ³

AspNetPagerÊÇÒ»¸ö±È½ÏºÃµÄ·ÖÒ³¿Ø¼þ,¸Ã¿Ø¼þʹÓùý³Ì·Öҳʮ·Ö·½±ã,¹ý³ÌÈçÏÂ:
Create PROCEDURE [dbo].[pt_AspNetPager]
(
@tableName varchar(255), -- ±íÃû
@fieldName varchar(400)= '*', -- ×Ö¶ÎÃû
@strWhere varchar(255) = Null,
@fieldOrder varchar(100), --²»ÄÜΪ¿Õ
@startIndex int ......

Oracle SQL ÓÅ»¯

Oracle
SQL
µÄÓÅ»¯¹æ
Ôò£º
¾¡Á¿ÉÙÓÃIN²Ù×÷·û£¬»ù±¾ÉÏËùÓеÄIN²Ù×÷·û¶¼¿ÉÒÔÓÃEXISTS´úÌæ
        ÓÃINд³öÀ´µÄSQL
µÄÓŵãÊDZȽÏÈÝÒ×д¼°ÇåÎúÒ×¶®£¬µ«ÊÇÓÃINµÄSQL
ÐÔÄÜ×ÜÊDZȽϵ͵쬴ÓORACLE
Ö´
ÐеIJ½ÖèÀ´·ÖÎöÓÃINµÄSQL
Óë²»ÓÃINµÄSQL
ÓÐ
ÒÔÏÂÇø±ð£º
    ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ