SQL数据库打开30万条记录以上的表也是用“select * from 表”吗

时间:2021-08-08 21:11:36
在分页时用什么select top 几 * from 表 where 条件 not in 什么什么

就是这样吗?

听说有什么存诸过程啊什么的  那是怎么来的?

11 个解决方案

#1


我也想知道

#2


100万我也只能用SELECT

#3


用是用select,你查询总要有个条件吧.记录数多的情况下就用分页.
         sql="select * from tablename"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql,objConnection,1,1

page=1 '设置变量初始值PAGE=1
page=request.querystring("page") 'page值为接受值 
rs.PageSize = 15 '每页显示记录数
if Not IsEmpty(trim(Request("Page"))) then '如果PAGE已经初始化...
Page = CInt(Request("Page")) '接收PAGE并化为数字型赋给PAGE变量 
if Page > rs.PageCount then '如果接收的页数大于总页数
rs.AbsolutePage = rs.PageCount '设置当前显示页等于最后页 
elseif Page <= 0 then '如果page小于等于0
Page = 1 '设置PAGE等于第一页
else
rs.AbsolutePage = Page '如果大于零,显示当前页等于接收的页数 
end if
End if
Page = rs.AbsolutePage

#4


不会吧?过百万条记录还用pagecount和recordcount?

优化分页我明白的

我是想问所谓的“存诸过程”是什么东东

#5


存储过程的性能特点如下: 

  ·存储过程是预编译过的,这就意味着它与普通的sql语句或批处理的sql语句不同,当首次运行一个存储过程时,sql server的查询处理器对其进行分析,在排除了语法错误之后形成存储在系统中的可执行方案。由于查询处理的大部分工作已经完成,所以存储过程执行速度很快。 

  ·存储过程和待处理的数据都放在同一台运行sql server的计算机上,使用存储过程查询当地的数据,效率自然很高。 

  ·存储过程一般多由client端通过存储过程的名字进行调用,即跨网传送的只是存储过程的名字及少量的参数(如果有的话),而不是构成存储过程的许多sql语句,因此可以减少网络传输量,加快系统响应速度。 

  ·存储过程还有着如同c语言子函数那样的被调用和返回值的方便特性。 

  所以,存储过程大大增强了sql语言的功能、效率和灵活性。


另外3楼的分页程序不是最优的,查询的时候数据都取出来了,数据量少还可以.还有更好的分页程序

#6


三楼没有限制最多可取多少页
!!~!
查询不会是每一列你都要吧!!
要哪个查哪个!!

#7


呵呵  5楼的能给段代码吗

#8


存储过程分页 其实就是你把页数当成参数传递给存储过程
然后在存储过程里写 根据传参过来的页数 通过换算 得出要取出的记录是多少条到多少条!~
那么每页只用读全部记录中的固定条数了!~
很简单的 自己写个就OK了!~

#9


看下楼下的!!

#10


楼下的没有``哈

#11


了解  多谢

#1


我也想知道

#2


100万我也只能用SELECT

#3


用是用select,你查询总要有个条件吧.记录数多的情况下就用分页.
         sql="select * from tablename"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql,objConnection,1,1

page=1 '设置变量初始值PAGE=1
page=request.querystring("page") 'page值为接受值 
rs.PageSize = 15 '每页显示记录数
if Not IsEmpty(trim(Request("Page"))) then '如果PAGE已经初始化...
Page = CInt(Request("Page")) '接收PAGE并化为数字型赋给PAGE变量 
if Page > rs.PageCount then '如果接收的页数大于总页数
rs.AbsolutePage = rs.PageCount '设置当前显示页等于最后页 
elseif Page <= 0 then '如果page小于等于0
Page = 1 '设置PAGE等于第一页
else
rs.AbsolutePage = Page '如果大于零,显示当前页等于接收的页数 
end if
End if
Page = rs.AbsolutePage

#4


不会吧?过百万条记录还用pagecount和recordcount?

优化分页我明白的

我是想问所谓的“存诸过程”是什么东东

#5


存储过程的性能特点如下: 

  ·存储过程是预编译过的,这就意味着它与普通的sql语句或批处理的sql语句不同,当首次运行一个存储过程时,sql server的查询处理器对其进行分析,在排除了语法错误之后形成存储在系统中的可执行方案。由于查询处理的大部分工作已经完成,所以存储过程执行速度很快。 

  ·存储过程和待处理的数据都放在同一台运行sql server的计算机上,使用存储过程查询当地的数据,效率自然很高。 

  ·存储过程一般多由client端通过存储过程的名字进行调用,即跨网传送的只是存储过程的名字及少量的参数(如果有的话),而不是构成存储过程的许多sql语句,因此可以减少网络传输量,加快系统响应速度。 

  ·存储过程还有着如同c语言子函数那样的被调用和返回值的方便特性。 

  所以,存储过程大大增强了sql语言的功能、效率和灵活性。


另外3楼的分页程序不是最优的,查询的时候数据都取出来了,数据量少还可以.还有更好的分页程序

#6


三楼没有限制最多可取多少页
!!~!
查询不会是每一列你都要吧!!
要哪个查哪个!!

#7


呵呵  5楼的能给段代码吗

#8


存储过程分页 其实就是你把页数当成参数传递给存储过程
然后在存储过程里写 根据传参过来的页数 通过换算 得出要取出的记录是多少条到多少条!~
那么每页只用读全部记录中的固定条数了!~
很简单的 自己写个就OK了!~

#9


看下楼下的!!

#10


楼下的没有``哈

#11


了解  多谢