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) ÆäËûÊÂÎñ/Óï¾ä¿ÉÒÔ¶ÁÈ¡±í£¬µ«²»ÄܸüÐÂɾ³ý
SELECT * from table WITH (TABLOCKX) ÆäËûÊÂÎñ/Óï¾ä²»ÄܶÁÈ¡±í,¸üкÍɾ³ý
À
Ïà¹ØÎĵµ£º
SQL ServerÁ¬½ÓÔ¶³ÌÊý¾ÝÔ´µÄ»ù±¾·½·¨ÓÐÏÂÃæÈýÖÖ£º
OPENDATASOURCE
: The OPENDATASOURCE function is used to
specify connection information for a remote data source by specifying
the OLE DB provider and an initialization string. OPENDATASOURCE can be
used directly within a SELECT, INSERT, UPDATE, or ......
СµÜÏëÎʸöÎÊÌ⣬ÔÚSQL Server 2005ÉÏ£¬½¨Á¢Ö÷¼üµÄͬʱ¾Í»áĬÈÏÔÚÖ÷¼üÉÏÉèÖþ۴ØË÷Òý£¬ÄÇôÄÜ·ñÔÚÒ»¸ö×Ö¶ÎÉÏÉèÖÃÖ÷¼üºÍΨһÐÔË÷Òý£¨Unique£©£¬µ«ÊǰѾ۴ØË÷ÒýÉèÖõ½ÁíÒ»¸ö×Ö¶ÎÉÏ£¿
¾Ù¸ö¼òµ¥µÄÀý×Ó£¬±ÈÈçÎÒÓиö±í½ÐTableTest£¬±íÀïÓÐÁ½¸ö×ֶΣ¬id,date£¬±¾À´idÊÇÖ÷¼üµÄ£¬ÎÒÏÖÔÚÏë°Ñ¾Û´ØË÷ÒýÉèÖõ½date×Ö¶ÎÉÏ¡£
ÎÒÏÈɾ³ýÖ ......
´æ´¢¹ý³Ì
==========================================================================
==========================================================================
¡¾ÑµÁ·15.1¡¿ ´´½¨Ò»¸öÏÔʾ¹ÍÔ±×ÜÈËÊýµÄ´æ´¢¹ý³Ì¡£
²½Öè1£ºµÇ¼SCOTTÕË»§(»òѧÉú¸öÈËÕË»§)¡£
²½Öè2£º ......
select pcode from (
select h.k,h.d,h.m,h.u,l.areacode,
l.areacode||substr(h.u,4,length(h.u))||h.k pcode
from(
&nb ......
Á·ÊÖ£¬Ã¿Ìì²é¿´±ðÈ˵Ķ«Î÷£¬²»Èç×Ô¼º×ܽáºÃ
1:replace º¯Êý
µÚÒ»¸ö²ÎÊýÄãµÄ×Ö·û´®£¬µÚ¶þ¸ö²ÎÊýÄãÏëÌæ»»µÄ²¿·Ö£¬µÚÈý¸ö²ÎÊýÄãÒªÌæ»»³Éʲô
select replace('lihan','a','b')
&nb ......