¹ØÓÚsql trace ºÍ 10046ʼþµÄ˵Ã÷
ÔÎĵØÖ·£ºhttp://www.eygle.com/case/Use.sql_trace.to.Diagnose.database.htm
SQL_TRACEÊÇOracleÌṩµÄÓÃÓÚ½øÐÐSQL¸ú×ÙµÄÊֶΣ¬ÊÇÇ¿ÓÐÁ¦µÄ¸¨ÖúÕï¶Ï¹¤¾ß.ÔÚÈÕ³£µÄÊý¾Ý¿âÎÊÌâÕï¶ÏºÍ½â¾öÖУ¬SQL_TRACEÊǷdz£³£Óõķ½·¨¡£
±¾ÎľÍSQL_TRACEµÄʹÓÃ×÷¼òµ¥Ì½ÌÖ£¬²¢Í¨¹ý¾ßÌå°¸Àý¶Ôsql_traceµÄʹÓýøÐÐ˵Ã÷.
Ò»¡¢ »ù´¡½éÉÜ
(a) SQL_TRACE˵Ã÷
SQL_TRACE¿ÉÒÔ×÷Ϊ³õʼ»¯²ÎÊýÔÚÈ«¾ÖÆôÓã¬Ò²¿ÉÒÔͨ¹ýÃüÁîÐз½Ê½ÔÚ¾ßÌåsessionÆôÓá£
1£® ÔÚÈ«¾ÖÆôÓÃ
ÔÚ²ÎÊýÎļþ(pfile/spfile)ÖÐÖ¸¶¨:
sql_trace =true
ÔÚÈ«¾ÖÆôÓÃSQL_TRACE»áµ¼ÖÂËùÓнø³ÌµÄ»î¶¯±»¸ú×Ù£¬°üÀ¨ºǫ́½ø³Ì¼°ËùÓÐÓû§½ø³Ì£¬Õâͨ³£»áµ¼Ö±ȽÏÑÏÖصÄÐÔÄÜÎÊÌ⣬ËùÒÔÔÚÉú²ú»·¾³
ÖÐÒª½÷É÷ʹÓÃ.
Ìáʾ: ͨ¹ýÔÚÈ«¾ÖÆôÓÃsql_trace£¬ÎÒÃÇ¿ÉÒÔ¸ú×Ùµ½ËùÓкǫ́½ø³ÌµÄ»î¶¯£¬ºÜ¶àÔÚÎĵµÖеijéÏó˵Ã÷£¬Í¨¹ý¸ú×ÙÎļþµÄʵʱ±ä»¯£¬ÎÒÃÇ¿ÉÒÔÇåÎú
µÄ¿´µ½¸÷¸ö½ø³ÌÖ®¼äµÄ½ôÃÜе÷.
2£® ÔÚµ±Ç°session¼¶ÉèÖÃ
´ó¶àÊýʱºòÎÒÃÇʹÓÃsql_trace¸ú×Ùµ±Ç°½ø³Ì.ͨ¹ý¸ú×Ùµ±Ç°½ø³Ì¿ÉÒÔ·¢ÏÖµ±Ç°²Ù×÷µÄºǫ́Êý¾Ý¿âµÝ¹é»î¶¯(ÕâÔÚÑо¿Êý¾Ý¿âÐÂÌØÐÔʱÓÈÆäÓÐЧ)£¬
Ñо¿SQLÖ´ÐУ¬·¢ÏÖºǫ́´íÎóµÈ.
ÔÚsession¼¶ÆôÓúÍÍ£Ö¹sql_trace·½Ê½ÈçÏÂ:
ÆôÓõ±Ç°sessionµÄ¸ú×Ù:
SQL> alter session set sql_trace=true;
Session altered.
´ËʱµÄSQL²Ù×÷½«±»¸ú×Ù:
SQL> select count(*) from dba_users;
COUNT(*)
----------
34
½áÊø¸ú×Ù:
SQL> alter session set sql_trace=false;
Session altered.
3£® ¸ú×ÙÆäËûÓû§½ø³Ì
ÔںܶàʱºòÎÒÃÇÐèÒª¸ú×ÙÆäËûÓû§µÄ½ø³Ì£¬¶ø²»Êǵ±Ç°Óû§£¬Õâ¿ÉÒÔͨ¹ýOracleÌṩµÄϵͳ°üDBMS_SYSTEM. SET_SQL_TRACE_IN_SESSION
À´Íê³É
SET_SQL_TRACE_IN_SESSION¹ý³ÌÐòÒªÌṩÈý¸ö²ÎÊý:
SQL> desc dbms_system
...
PROCEDURE SET_SQL_TRACE_IN_SESSION
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
SID NUMBER IN
SERIAL# NUMBER IN
SQL_TRACE BOOLEAN IN
...
ͨ¹ýv$sessionÎÒÃÇ¿ÉÒÔ»ñµÃsid¡¢serial#µÈÐÅÏ¢:
»ñµÃ½ø³ÌÐÅÏ¢£¬Ñ¡ÔñÐèÒª¸ú×ٵĽø³Ì:
SQL> select sid,serial#,username from v$session
Ïà¹ØÎĵµ£º
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--ÿҳÏÔʾ¼Ç¼ÌõÊý
@currentpage int output,--µÚ¼¸Ò³
@orderid nvarchar(50),--Ö÷¼üÅÅÐò
@sort int,--ÅÅÐò·½Ê½£¬1±íʾÉýÐò£¬0±íʾ½µÐòÅÅÁÐ
......
#include "iostream.h"
#include "stdio.h"
#import "C:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
int main(int argc, char* argv[])
{
::CoInitialize(NULL);
_ConnectionPtr m_pConnection;
m_pConnection.CreateInstance("ADODB.Connection");
tr ......
Case¾ßÓÐÁ½ÖÖ¸ñʽ¡£¼òµ¥Caseº¯ÊýºÍCaseËÑË÷º¯Êý¡£
--¼òµ¥Caseº¯Êý
CASE sex
WHEN '1' THEN 'ÄÐ'
WHEN '2' THEN 'Å®'
ELSE 'ÆäËû' END
--CaseËÑË÷º¯Êý
CASE WHEN sex = '1' THEN 'ÄÐ'
&nbs ......
ÐÂ×°»òÕßÒÔÇ°×°¹ýsql server£¬ºóÀ´É¾µô¡£ÏÖÔÚÖØ×°£¬»á³öÏÖ“ÒÔÇ°µÄij¸ö³ÌÐò°²×°ÒÑÔÚ°²×°¼ÆËã»úÉÏ´´½¨¹ÒÆðµÄÎļþ²Ù×÷£¬ÔËÐа²×°³ÌÐò֮ǰ±ØÐëÖØÐÂÆô¶¯¼ÆËã»ú”´íÎó¡£ÎÞ·¨½øÐÐÏÂÈ¥¡£
ÒÔÏÂΪ½â¾ö²½Ö裺
1£©Ìí¼Ó/ɾ³ý³ÌÐòÖг¹µ×ɾ³ýsql server¡£
2£©½«Ã»ÓÐɾ³ýµÄsql serverĿ¼Ҳɾ³ýµô¡£
3£©´ò¿ª×¢²á±í±à¼Æ÷£ ......
Sql ServerÖеÄÈÕÆÚÓëʱ¼äº¯Êý
1. µ±Ç°ÏµÍ³ÈÕÆÚ¡¢Ê±¼ä
select getdate()
2. dateadd ÔÚÏòÖ¸¶¨ÈÕÆÚ¼ÓÉÏÒ»¶Îʱ¼äµÄ»ù´¡ÉÏ£¬·µ»ØÐ嵀 datetime Öµ
ÀýÈ磺ÏòÈÕÆÚ¼ÓÉÏ2Ìì
select dateadd(day,2,'2004-10-15') --·µ»Ø£º2004-10-17 00:00:00.000
3. datediff ·µ»Ø¿çÁ½¸öÖ ......