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

SQLËø±íÓï¾ä

×ֺţº ´ó´ó  ÖÐÖР СС
 
Ëø¶¨Êý¾Ý¿âµÄÒ»¸ö±í
SELECT * from table WITH (HOLDLOCK)
×¢Òâ: Ëø¶¨Êý¾Ý¿âµÄÒ»¸ö±íµÄÇø±ð
SELECT * from table WITH (HOLDLOCK)
ÆäËûÊÂÎñ¿ÉÒÔ¶ÁÈ¡±í£¬µ«²»ÄܸüÐÂɾ³ý
SELECT * from table WITH (TABLOCKX)
ÆäËûÊÂÎñ²»ÄܶÁÈ¡±í,¸üкÍɾ³ý
SELECT Óï¾äÖГ¼ÓËøÑ¡ÏŦÄÜ˵Ã÷
SQL ServerÌṩÁËÇ¿´ó¶øÍ걸µÄËø»úÖÆÀ´°ïÖúʵÏÖÊý¾Ý¿âϵͳµÄ²¢·¢ÐԺ͸ßÐÔÄÜ¡£Óû§¼ÈÄÜʹÓÃSQL ServerµÄȱʡÉèÖÃÒ²¿ÉÒÔÔÚselect Óï¾äÖÐʹÓÓ¼ÓËøÑ¡Ïî”À´ÊµÏÖÔ¤ÆÚµÄЧ¹û¡£ ±¾ÎĽéÉÜÁËSELECTÓï¾äÖеĸ÷ÏÓËøÑ¡Ïî”ÒÔ¼°ÏàÓ¦µÄ¹¦ÄÜ˵Ã÷¡£
¹¦ÄÜ˵Ã÷£º¡¡
NOLOCK£¨²»¼ÓËø£©
´ËÑ¡ÏѡÖÐʱ£¬SQL Server ÔÚ¶ÁÈ¡»òÐÞ¸ÄÊý¾Ýʱ²»¼ÓÈκÎËø¡£ ÔÚÕâÖÖÇé¿öÏ£¬Óû§ÓпÉÄܶÁÈ¡µ½Î´Íê³ÉÊÂÎñ£¨Uncommited Transaction£©»ò»Ø¹ö(Roll Back)ÖеÄÊý¾Ý, ¼´ËùνµÄ“ÔàÊý¾Ý”¡£
HOLDLOCK£¨±£³ÖËø£©
´ËÑ¡ÏѡÖÐʱ£¬SQL Server »á½«´Ë¹²ÏíËø±£³ÖÖÁÕû¸öÊÂÎñ½áÊø£¬¶ø²»»áÔÚ;ÖÐÊÍ·Å¡£
UPDLOCK£¨ÐÞ¸ÄËø£©
´ËÑ¡ÏѡÖÐʱ£¬SQL Server ÔÚ¶ÁÈ¡Êý¾ÝʱʹÓÃÐÞ¸ÄËøÀ´´úÌæ¹²ÏíËø£¬²¢½«´ËËø±£³ÖÖÁÕû¸öÊÂÎñ»òÃüÁî½áÊø¡£Ê¹ÓôËÑ¡ÏîÄܹ»±£Ö¤¶à¸ö½ø³ÌÄÜͬʱ¶ÁÈ¡Êý¾Ýµ«Ö»Óиýø³ÌÄÜÐÞ¸ÄÊý¾Ý¡£
TABLOCK£¨±íËø£©
´ËÑ¡ÏѡÖÐʱ£¬SQL Server ½«ÔÚÕû¸ö±íÉÏÖù²ÏíËøÖ±ÖÁ¸ÃÃüÁî½áÊø¡£ Õâ¸öÑ¡Ïî±£Ö¤ÆäËû½ø³ÌÖ»ÄܶÁÈ¡¶ø²»ÄÜÐÞ¸ÄÊý¾Ý¡£
PAGLOCK£¨Ò³Ëø£©
´ËÑ¡ÏîΪĬÈÏÑ¡Ï µ±±»Ñ¡ÖÐʱ£¬SQL Server ʹÓù²ÏíÒ³Ëø¡£
TABLOCKX£¨ÅÅËü±íËø£©
´ËÑ¡ÏѡÖÐʱ£¬SQL Server ½«ÔÚÕû¸ö±íÉÏÖÃÅÅËüËøÖ±ÖÁ¸ÃÃüÁî»òÊÂÎñ½áÊø¡£Õ⽫·ÀÖ¹ÆäËû½ø³Ì¶ÁÈ¡»òÐ޸ıíÖеÄÊý¾Ý¡£
 
HOLDLOCK ³ÖÓй²ÏíËø£¬Ö±µ½Õû¸öÊÂÎñÍê³É£¬Ó¦¸ÃÔÚ±»Ëø¶ÔÏó²»ÐèҪʱÁ¢¼´ÊÍ·Å£¬µÈÓÚSERIALIZABLEÊÂÎñ¸ôÀë¼¶±ð
NOLOCK Óï¾äÖ´ÐÐʱ²»·¢³ö¹²ÏíËø£¬ÔÊÐíÔà¶Á £¬µÈÓÚ READ UNCOMMITTEDÊÂÎñ¸ôÀë¼¶±ð
PAGLOCK ÔÚʹÓÃÒ»¸ö±íËøµÄµØ·½Óöà¸öÒ³Ëø
READPAST ÈÃsql serverÌø¹ýÈκÎËø¶¨ÐУ¬Ö´ÐÐÊÂÎñ£¬ÊÊÓÃÓÚREAD UNCOMMITTEDÊÂÎñ¸ôÀë¼¶±ðÖ»Ìø¹ýRIDËø£¬²»Ìø¹ýÒ³£¬ÇøÓòºÍ±íËø
ROWLOCK Ç¿ÖÆÊ¹ÓÃÐÐËø
TABLOCKX Ç¿ÖÆÊ¹ÓöÀÕ¼±í¼¶Ëø£¬Õâ¸öËøÔÚÊÂÎñÆÚ¼ä×èÖ¹ÈÎºÎÆäËûÊÂÎñʹÓÃÕâ¸ö±í
UPLOCK Ç¿ÖÆÔÚ¶Á±íʱʹÓøüжø²»Óù²ÏíËø
×¢Òâ: Ëø¶¨Êý¾Ý¿âµÄÒ»¸ö±íµÄÇø±ð
SELECT * from table WITH (HOLDLOCK) ÆäËûÊÂÎñ¿ÉÒÔ¶ÁÈ¡±í£¬µ«²»ÄܸüÐÂɾ³ý
SELEC


Ïà¹ØÎĵµ£º

ÈçºÎ¼ì²éSQL Server CPUÆ¿¾±

--¼ì²âCPUѹÁ¦µÄÒ»¸ö·½·¨ÊǼÆËãÔËÐÐ״̬ÏµĹ¤×÷½ø³ÌÊýÁ¿£¬
--ͨ¹ýÖ´ÐÐÈçϵÄDMV²éѯ¿ÉÒԵõ½Õâ¸öÐÅÏ¢
SELECT COUNT(*) AS workers_waiting_for_cpu,t2.scheduler_id
from sys.dm_os_workers AS t1, sys.dm_os_schedulers AS t2
WHERE t1.state='RUNNABLE' AND 
t1.scheduler_address = t2.scheduler_address A ......

How To Use Dynamic Sql in Sql Server ?

How To Use Dynamic Sql in Sql Server ?
 
¶¯Ì¬SQL ÔÚsql server ProcedureÖеÄÓ¦ÓÃ
 
 
Create PROCEDURE [dbo].[Proc_Get_Serial_No]
        (
         @Table_Name varchar(20),
      ......

SQL SERVER 2000¸ü¸ÄºÍɾ³ýSaÓû§ÃûºÍÃÜÂë

ÏÖÔÚÓÃMSSQLµÄµØ·½Ì«¶àÁË£¬Óкܶà×ö¼¼ÊõµÄ¸öÈ˵çÄÔÉÏÒ²°²×°SQLרҵ°æ£¬ÒòΪËüÓõĶ࣬µ«ÓõÄÈ˶¼ÖªµÀ£¬SQLÓиö³¬¼¶Óû§sa£¬´ËÓû§Ä¬ÈÏÇé¿öÏ£¬ËüÖ¸Åɸø¹Ì¶¨·þÎñÆ÷½ÇÉ« sysadmin£¬²¢²»ÄܽøÐиü¸Ä¡£Ò»°ã¶®µã°²È«ÎÊÌâµÄ¼¼ÊõÈËÔ±¶¼»á°ÑÕâ¸öÃÜÂëÐ޸ĵô£¬µ«ÐÞ¸ÄÔÙ¸´ÔÓµÄÃÜÂë¶¼²»ÊǾø¶Ô°²È«µÄ£¬Ò»Ð©±©Á¦ÆÆ½âÈí¼þ£¬²ËÄñ¶¼»áÓá£
ÄÇ ......

Sqlº¯Êý´óÈ«

--¾ÛºÏº¯Êý
use pubs
go
select avg(distinct price)  --ËãÆ½¾ùÊý
from titles
where type='business'
go
use pubs
go
select max(ytd_sales)  --×î´óÊý
from titles
go
use pubs
go
select min(ytd_sales) --×îСÊý
from titles
go
use pubs
go
select type,sum(price),sum(advance)  ......

sql server ϵͳº¯ÊýÓ÷¨ÊµÀý

ϵͳº¯Êý
1.case when ... then ..else ..end(ÓÃÓÚ¶ÔÌõ¼þ½øÐвâÊÔ)
e.Select id,case when name='deepwishly' then 'ÀÏ´ó' else 'ÆäËû' end as Type
 ÏÔʾ id  type
          1   ÀÏ´ó
2.cast()/convert() ǰÕß¾ßÓÐANSI SQL-92¼æÈÝÐÔ£¬ºóÕß¹¦ÄܸüÇ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ