这个数据量确实太大了,如果一次性加载到c#中,估计会内存溢出把。对了,这个500w条数据,是最后的结果,还是只是个中间结果,还要进一步处理呢 不处理,就是用户的查询结果,除了增加内存没别的办法了么?哦,这样啊,但是用户不可能一次浏览500w条数据的,所以你要做分页,比如一次给他100条数据,然后他要看下一页,就在把下面的100条数据查询出来发回给他。这个是一个分页的sql代码,你可以参考一下: declare @page_size int; declare @page_num int;--比如:每页10条记录 set @page_size = 10;--比如:先取第1页 set @page_num = 1;select id,sid,sname from ( select c.id, c.sid, s.sname,
--这里按照@@servername来排序, --你可以根据需要按照id,sid,sname等字段来排序 (row_number() over(order by @@servername) - 1) / @page_size as rownum from commet c inner join student s on c.sid = s.sid )t where rownum = @page_num - 1
这个数据量确实太大了,如果一次性加载到c#中,估计会内存溢出把。对了,这个500w条数据,是最后的结果,还是只是个中间结果,还要进一步处理呢 不处理,就是用户的查询结果,除了增加内存没别的办法了么?哦,这样啊,但是用户不可能一次浏览500w条数据的,所以你要做分页,比如一次给他100条数据,然后他要看下一页,就在把下面的100条数据查询出来发回给他。这个是一个分页的sql代码,你可以参考一下: declare @page_size int; declare @page_num int;--比如:每页10条记录 set @page_size = 10;--比如:先取第1页 set @page_num = 1;select id,sid,sname from ( select c.id, c.sid, s.sname,
--这里按照@@servername来排序, --你可以根据需要按照id,sid,sname等字段来排序 (row_number() over(order by @@servername) - 1) / @page_size as rownum from commet c inner join student s on c.sid = s.sid )t where rownum = @page_num - 1 谢谢大神
1.这个可以这样:第1个sql语句
union all
第2个sql语句
union all
第3个sql语句
2. 如果数目很大,可以分批查询,一般几千条占用也就百兆级空间,对现在的电脑来说不是问题。我的程序载入2500条左右,也就占用了120MB。
如果超过希望的数量,就分页查询,规定每次返回多少数据,当然在页面设计的时候也要设计相应的页码。
这个数据量确实太大了,如果一次性加载到c#中,估计会内存溢出把。对了,这个500w条数据,是最后的结果,还是只是个中间结果,还要进一步处理呢
不处理,就是用户的查询结果,除了增加内存没别的办法了么?哦,这样啊,但是用户不可能一次浏览500w条数据的,所以你要做分页,比如一次给他100条数据,然后他要看下一页,就在把下面的100条数据查询出来发回给他。这个是一个分页的sql代码,你可以参考一下:
declare @page_size int;
declare @page_num int;--比如:每页10条记录
set @page_size = 10;--比如:先取第1页
set @page_num = 1;select id,sid,sname
from
(
select c.id,
c.sid,
s.sname,
--这里按照@@servername来排序,
--你可以根据需要按照id,sid,sname等字段来排序
(row_number() over(order by @@servername) - 1) / @page_size as rownum
from commet c
inner join student s
on c.sid = s.sid
)t
where rownum = @page_num - 1
这个数据量确实太大了,如果一次性加载到c#中,估计会内存溢出把。对了,这个500w条数据,是最后的结果,还是只是个中间结果,还要进一步处理呢
不处理,就是用户的查询结果,除了增加内存没别的办法了么?哦,这样啊,但是用户不可能一次浏览500w条数据的,所以你要做分页,比如一次给他100条数据,然后他要看下一页,就在把下面的100条数据查询出来发回给他。这个是一个分页的sql代码,你可以参考一下:
declare @page_size int;
declare @page_num int;--比如:每页10条记录
set @page_size = 10;--比如:先取第1页
set @page_num = 1;select id,sid,sname
from
(
select c.id,
c.sid,
s.sname,
--这里按照@@servername来排序,
--你可以根据需要按照id,sid,sname等字段来排序
(row_number() over(order by @@servername) - 1) / @page_size as rownum
from commet c
inner join student s
on c.sid = s.sid
)t
where rownum = @page_num - 1
谢谢大神