Ö´Ðлº´æÒÔÓÅ»¯SQL ServerµÄÄÚ´æÕ¼ÓÃ
×÷Õߣºsuperhasty
2007-11-29
ÔÚÂÛ̳Éϳ£¼ûÓÐÅóÓѱ§Ô¹£¬ËµSQL ServerÌ«³ÔÄÚ´æÁË¡£ÕâÀï±ÊÕ߸ù¾Ý¾Ñé¼òµ¥½éÉÜÒ»ÏÂÄÚ´æÏà¹ØµÄµ÷ÓÅ֪ʶ¡£Ê×ÏÈ˵Ã÷Ò»ÏÂSQL
ServerÄÚ´æÕ¼ÓÃÓÉÄ¿·Ö×é³É¡£SQL ServerÕ¼ÓõÄÄÚ´æÖ÷ÒªÓÉÈý²¿·Ö×é³É£ºÊý¾Ý»º´æ(Data
Buffer)¡¢Ö´Ðлº´æ(Procedure Cache)¡¢ÒÔ¼°SQL ServerÒýÇæ³ÌÐò¡£SQL
ServerÒýÇæ³ÌÐòËùÕ¼Óûº´æÒ»°ãÏà¶Ô±ä»¯²»´ó£¬ÔòÎÒÃǽøÐÐÄÚ´æµ÷ÓŵÄÖ÷Òª×ÅÑÛµãÔÚÊý¾Ý»º´æºÍÖ´Ðлº´æµÄ¿ØÖÆÉÏ¡£±¾ÎÄÖ÷Òª½éÉÜÒ»ÏÂÖ´Ðлº´æµÄµ÷ÓÅ¡£Êý¾Ý
»º´æµÄµ÷ÓŽ«ÔÚÁíÍâµÄÎÄÕÂÖнéÉÜ¡£
¶ÔÓÚ¼õÉÙÖ´Ðлº´æµÄÕ¼Óã¬Ö÷Òª¿ÉÒÔͨ¹ýʹÓòÎÊý»¯²éѯ¼õÉÙÄÚ´æÕ¼Óá£
1¡¢Ê¹ÓòÎÊý»¯²éѯ¼õÉÙÖ´Ðлº´æÕ¼ÓÃ
ÎÒÃÇͨ¹ýÈçÏÂÀý×ÓÀ´ËµÃ÷Ò»ÏÂʹÓòÎÊý»¯²éѯ¶Ô»º´æÕ¼ÓõÄÓ°Ï졣Ϊ·½±ãÊÔÑ飬ÎÒÃÇʹÓÃÁËһ̨ûÓÐÆäËü¸ºÔصÄSQL Server½øÐÐÈçÏÂʵÑé¡£
ÏÂÃæµÄ½Å±¾Ñ»·Ö´ÐÐÒ»¸ö¼òµ¥µÄ²éѯ£¬¹²Ö´ÐÐ10000´Î¡£
Ê×ÏÈ£¬ÎÒÃÇÇå¿ÕÒ»ÏÂSQL ServerÒѾռÓõĻº´æ£º
dbcc freeproccache
È»ºó£¬Ö´Ðнű¾£º
DECLARE
@t
datetime
SET
@t
=
getdate
()
SET
NOCOUNT
ON
DECLARE
@i
INT
,
@count
INT
,
@sql
nvarchar
(
4000
)
SET
@i
=
20000
WHILE
@i
<=
30000
BEGIN
SET
@sql
=
'
SELECT @count=count(*) from P_Order WHERE MobileNo =
'
+
cast
(
@i
as
varchar
(
10
) )
EXEC
sp_executesql
@sql
,N
'
@count INT OUTPUT
'
,
@count
OUTPUT
SET
@i
=
@i
+
1
END
PRINT
DATEDIFF
( second,
@t
,
current_timestamp
)
Êä³ö£º
DBCC Ö´ÐÐÍê±Ï¡£Èç¹û DBCC Êä³öÁË´íÎóÐÅÏ¢£¬ÇëÓëϵͳ¹ÜÀíÔ±ÁªÏµ¡£
11
ʹÓÃÁË11ÃëÍê³É10000´Î²éѯ¡£
ÎÒÃÇ¿´Ò»ÏÂSQL Server»º´æÖÐËùÕ¼ÓõIJéѯ¼Æ»®£º
Select
Count
(
*
) CNT,
sum
(size_in_bytes) TotalSize
from
sys.dm_exec_cached_plans
²éѯ½á¹û£º¹²ÓÐ2628ÌõÖ´Ðмƻ®»º´æÔÚSQL ServerÖС£ËüÃÇËùÕ¼ÓõĻº´æ´ïµ½£º
92172288×Ö½Ú = 90012KB = 87 MB¡£
 
Ïà¹ØÎĵµ£º
Ò» ϵͳԤ¶¨Òå´íÎó´úÂë
SQL Server ÓÐ3831¸öÔ¤¶¨Òå´íÎó´úÂ룬ÓÉmaster.dbo.sysmessages±íά»¤¡£Ã¿Ò»¸ö´íÎó´úÂë¶¼ÓÐÏàÓ¦µÄ¼¶±ðºÍÃèÊö¡£
´íÎó¶¨ÒåµÄ¼¶±ð´Ó0µ½25¡£20ÒÔÉϵĴíÎó´ú±íÖØ´ó´íÎó£¬Í¨³£ÒâζןôíÎó»áµ¼Ö´洢½ø³ÌÁ¢¿ÌÖÕÖ¹£¬²¢ÇÒËùÓеĿͻ§Á¬½Ó¶¼ÒªÖØÐ³õʼ»¯¡£
·Ç¹Ø¼üÐÔ´íÎóÖ»ÊǽûÖ¹µôµ±Ç°ÔËÐеijÌÐòÐУ¬²¢¼Ì ......
Ëø»úÖÆ
NOLOCKºÍREADPASTµÄÇø±ð¡£
1. ¿ªÆôÒ»¸öÊÂÎñÖ´ÐвåÈëÊý¾ÝµÄ²Ù×÷¡£
BEGIN TRAN t
INSERT INTO Customer
SELECT 'a','a'
2. Ö´ÐÐÒ»Ìõ²éѯÓï¾ä¡£
SELECT * from Customer WITH (NOLOCK)
½á¹ûÖÐÏÔʾ"a"ºÍ"a"¡£µ±1ÖÐÊÂÎñ»Ø¹öºó£¬ÄÇôa½«³ÉΪÔàÊý¾Ý¡£(×¢:1ÖеÄÊÂÎñδÌá½») ¡£NOLOCK±íÃ÷ûÓжÔÊý¾Ý±íÌí¼Ó¹²Ï ......
´ÓTable ±íÖÐÈ¡³öµÚ m Ìõµ½µÚ n ÌõµÄ¼Ç¼£º(Not In °æ±¾)
SELECT TOP n-m+1 *
from Table
WHERE (id NOT IN (SELECT TOP m-1 id from Table ))
--´ÓTABLE±íÖÐÈ¡³öµÚmµ½nÌõ¼Ç¼ (Exists°æ±¾)
SELECT TOP n-m+1 * from TABLE AS a WHERE Not Exists
(Select * from (Select Top m-1 * from TABLE orde ......
×·¼Ó£ºrow_number, rank, dese_rank, ntile
1. row_number: Ϊ²éѯ³öÀ´µÄÿһÐмǼÉú³ÉÒ»¸öÐòºÅ¡£
SELECT row_number() OVER(ORDER BY field) AS row_n
from tablename;
·ÖÒ³²éѯ£º
with t_towtable
as (select row_number over(order by field1) as row_number from tb)
select * from t_rowtable where row_numbe ......
×î½üÒ»Ö±ÔÚÓÃjavascriptÔÚ×öÏîÄ¿
¿ÉÊÇ×ö×Å×ö×Å
¸Ð¾õºÜ¶à¹¦ÄÜ´úÂë¶¼ÊÇÖØ¸´µÄ¡£
±ÈÈç¶ÔjavascriptÊý×éµÄÅÅÐò
»¹ÓжÔÊý×éÊý¾ÝµÄɾѡÒÔ¼°·Ö×é
ËùÒÔ£¬ºóÀ´ÐËÖÂÒÔÉÏÀ´¡£
Ò»·¢²»¿ÉÊÕʰ¡£
дÁËÒ»¸öÄÜÔÚjavascriptÖÐÓ¦ÓÃµÄ SQL ¿â
ºóÀ´ÓÖÏ룬Ôõô²»ÄÜÓÃjavascriptÖ±½ÓÁ¬½ÓÊý¾Ý¿âÄØ£¿
ÓÖ×öÁËÒ»¸öjavascriptÖ±Á¬SqlÊý¾ÝµÄÀà¿â ......