¹ØÓÚ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±íʾ½µÐòÅÅÁÐ
......
ϵͳ»·¾³£ºWindows 7
Èí¼þ»·¾³£ºVisual C++ 2008 SP1 +SQL Server 2005
±¾´ÎÄ¿µÄ£º±àдһ¸öº½¿Õ¹ÜÀíϵͳ
ÕâÊÇÊý¾Ý¿â¿Î³ÌÉè¼ÆµÄ³É¹û£¬ËäÈ»³É¼¨²»¼Ñ£¬µ«ÊÇ×÷ΪÎÒÓÃVC++ ÒÔÀ´±àдµÄ×î´ó³ÌÐò»¹ÊÇ´«µ½ÍøÉÏ£¬ÒÔ¹©²Î¿¼¡£ÓÃVC++ ×öÊý¾Ý¿âÉè¼Æ²¢²»ÈÝÒ×£¬µ«Ò²²»ÊDz»¿ÉÄÜ¡£ÒÔÏÂÊÇÎҵijÌÐò½çÃæ£¬ºóÃæ ......
CREATE proc sqlToMultiExcelFile
@sqlstr nvarchar(4000), --²éѯÓï¾ä,Èç¹û²éѯÓï¾äÖÐʹÓÃÁËorder by ,Çë¼ÓÉÏtop 100 percent
@primaryKey varchar(100),--·ÖÒ³Ö÷¼ü×Ö¶Î
@path nvarchar(1000), --Îļþ´æ·ÅĿ¼
@fname nvarchar(250), --ÎļþÃû
@sheetname varchar(250)='sheet1' --Òª´´½¨µÄ¹¤×÷±íÃû,Ä ......
use Tempdb
go
if object_ID('fn_ACITEncryption') is not null
drop function fn_ACITEncryption
go
create function fn_ACITEncryption
(
@Str nvarchar(4000),--¼ÓÃܵÄ×Ö·û´®
@Flag bit=1,--1¡¢¼ÓÃÜ 0¡¢½âÃÜ
@Key nvarchar(50)--ÃÜÎÄ
)
returns nvarchar(4000)--這Àï¿É轉換 ......