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

SqlÊý¾Ý²ã·ÖÒ³¼¼Êõ

¿´ÁËһƪ½²×ù£¬Ëµµ½Êý¾Ý²ã·ÖÒ³¼¼Êõ£¬Óõ½ÁË4Öз½Ê½£¬1£©Ê¹ÓÃtop *top   2)ʹÓñí±äÁ¿  3£©Ê¹ÓÃÁÙʱ±í 4£©Ê¹ÓÃROW_NUMBERº¯Êý¡£
ÆäÖÐ×î¿ìµÄÊǵÚ1 ºÍµÚ4Öз½Ê½£¬½ÓÏÂÀ´ÎÒÃÇÀ´¿´¿´ÕâÁ½ÖÖ·½Ê½£º
ÎÒÃÇʹÓÃsql2005×Ô´øµÄÊý¾Ý¿â AdventureWorks²âÊÔ£¬
1£©
--Use Top*Top
DECLARE @Start datetime,@end datetime;
SET @Start=getdate();
 
DECLARE @PageNumber INT, @Count INT, @Sql varchar(max);
SET @PageNumber=5000;
SET @Count=10;
SET @Sql='SELECT T2.* from (
    SELECT TOP 10 T1.* from
       (SELECT TOP ' + STR(@PageNumber*@Count) +' * from Production.TransactionHistoryArchive
       ORDER BY ReferenceOrderID ASC) AS T1
    ORDER BY ReferenceOrderID DESC) AS T2
ORDER BY ReferenceOrderID ASC';
EXEC (@sql);
 
SET @end=getdate();
PRINT Datediff(millisecond,@Start,@end);
GO
½âÎö£ºÎÒÃÇÊÇÒª²é³öµÚ5000Ò³£¬Ã¿Ò³10Ìõ£¬Ò²¾ÍÊǵÚ49991~µÚ50000Ìõ£¬
   ÏÈselect³öǰ50000Ìõ£¬ÔÙµ¹Ðò³öºó10Ìõ£¬ÔÙÉýÐòÅÅÁУ¬Ò²¾ÍÊÇ49991~50000Ìõ£¬Ö´ÐÐʱ¼äΪ373ºÁÃë¡£
2£©
--Use ROW_NUMBER
DECLARE @Start datetime,@end datetime;
SET @Start=getdate();
 
DECLARE @PageNumber INT, @Count INT, @Sql varchar(max);
SET @PageNumber=5000;
SET @Count=10;
SELECT * from
(   SELECT ROW_NUMBER() 
      OVER(ORDER BY ReferenceOrderID) AS RowNumber,   
      *
    from Production.TransactionHistoryArchive) AS T
WHERE T.RowNumber<=@PageNumber*@Count AND T.RowNumber>(@PageNumber-1)*@Count;
 
SET @end=getdate();
PRINT Datediff(millisecond,@Start,@end);
GO
½âÎö£ºÒ²ÊÇÒª²é³öµÚ5000Ò³£¬Ã¿Ò³10Ìõ¡£ÏȽ«Êý¾ÝÈ«²¿ÅÅÃû£¬ÔÙwhereÁ½¸öÌõ¼þ£¬Ò»¸öÊÇÅÅÃû<=5000*10=50000Ìõ ²¢ÇÒÅÅÃû>4999*10=49990Ìõ£¬Ò²¾ÍÊÇ49991µ½50000Ìõ¡£ Ö´ÐÐʱ¼äΪ156£¬ÕâÖÖ·½Ê½¸üÓÅ¡£Ö÷ÒªÊÇtop·½Ê½ÊÇ·´¸´µÄÈ¥²é£¬ÏûºÄÁËʱ¼ä¡£


Ïà¹ØÎĵµ£º

SQL Server²éѯһÖÜÄڵļǼ

select * from tableName where datediff(week,dateField,getdate())=0
ÕâÑù²é³öÀ´µÄ½á¹ûÊÇ´ÓÐÇÆÚÌìµ½ÐÇÆÚÁù(ÀÏÍâĬÈÏÐÇÆÚÌìÊÇÒ»ÖܵĵÚÒ»Ìì).
Èç¹ûÏëÒÔÐÇÆÚÒ»×÷ΪµÚÒ»ÌìµÄ»°,Á½¸öʱ¼ä¶¼ÐèÒª¼õÒ»,ÈçÏÂ:
select * from tableName where datediff(week,dateField-1,getdate()-1)=0 ......

SQL Ìí¼Óɾ³ý·þÎñÆ÷

//--Ìí¼Ó·þÎñÆ÷
EXEC sp_addlinkedserver
      @server='LQXLSJ-600A5A60',--±»·ÃÎʵķþÎñÆ÷±ðÃû
      @srvproduct='',
      @provider='SQLOLEDB',
      @datasrc='LQXLSJ-600A5A60'   --Òª·ÃÎ ......

(Microsoft SQL Server£¬´íÎó: 3219)

MSSQL»¹Ô­Êý¾Ý¿âʧ°Ü£¬ÌáʾÈçÏ£º »¹Ô­¶ÔÓë·þÎñÆ÷ ʧ°Ü¡£(Microsoft.SqlServer.Smo) ÆäËüÐÅÏ¢£º ©§ ©»¡úÖ´ÐÐTransact-SQLÓï¾ä»òÅú´¦Àíʱ·¢ÉúÒì³£¡££¨Microsoft.SqlServer.ConnectionsInfo£© ©§ ©»¡ú²»ÄÜÑ¡ÔñÎļþ»òÎļþ×é¡°¡­¡­¡±ÓÃÓڴ˲Ù×÷¡£ RESTORE DATABASE ÕýÔÚÒì³£ÖÕÖ¹¡££¨Microsoft SQL Server, ´íÎó£º3219£© ³öÏÖ´Ë ......

sql ÓαêµÄ»ù±¾Ó÷¨

1. ¶¨ÒåÓα궨Òå
ÓαêÓï¾äµÄºËÐÄÊǶ¨ÒåÁËÒ»¸öÓαê±êʶÃû£¬²¢°ÑÓαê±êʶÃûºÍÒ»¸ö²éѯÓï¾ä¹ØÁªÆðÀ´¡£DECLAREÓï¾äÓÃÓÚÉùÃ÷Óα꣬Ëüͨ¹ýSELECT²éѯ¶¨ÒåÓÎ±ê´æ´¢µÄÊý¾Ý¼¯ºÏ¡£Óï¾ä¸ñʽΪ£º
DECLARE ÓαêÃû³Æ [INSENSITIVE] [SCROLL]
CURSOR FOR selectÓï¾ä
[FOR{READ ONLY|UPDATE[OF ÁÐÃû×Ö±í]}]
²ÎÊý˵Ã÷£º
INSENSITIVEÑ¡Ï ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ