怎么提高SQL查询速度(我是用ODBC)连接远程数据库
我们这里用ASP程序编程,用ODBC数据源连接远程数据库,从其数据库里取值,再进行判断,如我们数据库内有远程连接数据库中的记录,就不增加,如果没有就增加进我方数据库.但此时出现ODBC连接超时问题,我用了Server.ScriptTimeOut=360000这个语句也不起作用,远程查询一个表数据,这个表内数据有6万条. 
 请各位大侠同仁帮帮我
------解决方案--------------------建议使用以下这个在存储过程(用于分页记录) 
 CREATE  PROCEDURE SelectPageBySingleTable   
 @tblName   varchar(255),       -- 表名 
 @strGetFields varchar(1000) =  ' ',  -- 需要返回的列  
 @fldName varchar(255)= ' ',      -- 排序的字段名 
 @PageSize   int = 10,          -- 页尺寸 
 @PageIndex  int = 1,           -- 页码 
 @doCount  bit = 0,   -- 返回记录总数, 非 0 值则返回 
 @OrderType bit = 0,  -- 设置排序类型, 非 0 值则降序 
 @strWhere  varchar(1500) =  ' '  -- 查询条件 (注意: 不要加 where)   
 AS   
 declare @strSQL   varchar(5000)       -- 主语句 
 declare @strTmp   varchar(110)        -- 临时变量 
 declare @strOrder varchar(400)        -- 排序类型     
 if @doCount != 0  begin   
     if @strWhere != ' ' 
 	set @strSQL =  "select count(*) as Total from [ " + @tblName +  "] where  "+@strWhere 
     else 
     	set @strSQL =  "select count(*) as Total from [ " + @tblName +  "] "   
 end else begin   
    if @OrderType != 0 begin 
      set @strTmp =  " <(select min " 
      set @strOrder =  " order by [ " + @fldName + "] desc " 
 	--如果@OrderType不是0,就执行降序,这句很重要! 
    end else begin 
      set @strTmp =  "> (select max " 
      set @strOrder =  " order by [ " + @fldName + "] asc " 
    end   
    if @PageIndex = 1 begin 
       if @strWhere !=  ' '   
    	 set @strSQL =  "select top  " + str(@PageSize) + "  "+@strGetFields+  "  from [ " + @tblName +  "] where  " + @strWhere +  "  " + @strOrder   
       else 
 	 set @strSQL =  "select top  " + str(@PageSize) + "  "+@strGetFields+  "  from [ "+ @tblName +  "]  "+ @strOrder 
 	--如果是第一页就执行以上代码,这样会加快执行速度 
    end else begin 
 	--以下代码赋予了@strSQL以真正执行的SQL代码   
 	set @strSQL =  "select top  " + str(@PageSize) + "  "+@strGetFields+  "  from [ " 
     + @tblName +  "] where [ " + @fldName +  "] " + @strTmp +  "([ "+ @fldName +  "]) from (select top  " + str((@PageIndex-1)*@PageSize) +  " [ "+ @fldName +  "] from [ " + @tblName +  "] " + @strOrder +  ") as tblTmp) "+ @strOrder   
 	if @strWhere !=  ' '   
          set @strSQL =  "select top  " + str(@PageSize) + "  "+@strGetFields+  "  from [ " 
         + @tblName +  "] where [ " + @fldName +  "] " + @strTmp +  "([ " 
         + @fldName +  "]) from (select top  " + str((@PageIndex-1)*@PageSize) +  " [ " 
         + @fldName +  "] from [ " + @tblName +  "] where  " + @strWhere +  "  " 
         + @strOrder +  ") as tblTmp) and  " + @strWhere +  "  " + @strOrder   
    end  
 end 
 print @strSQL 
 exec (@strSQL) 
 GO