CNDEV
CNDEV.ORG
当前在线
论坛
CBD
程序员情感CBD
程序员见面交流会
CBD开发区
Java/J2ME
.NET/C#
数据库
Delphi/BCB
Visual C
其它
修真养身
中国象棋
纪念日
谈钱太俗,还是投机吧
听音乐
iCosta
资源共享
一隅
好文共赏
看电影看美剧
待定
狗屎
雪域召唤
工作流
专业显摆区
语录
情感
批评与自我批评
爱情故事
发牢骚
看三点区
游戏
CNDEV-CS/WOW
浩宇长空
生活
家有XPH
我爱学英语
美食天地ORG
半调子体育迷
观澳园友邻
搞笑奇文
拍照片
我读书我存在
论坛系统
超级垃圾站
系统建议及BUG
系统测试
中国开发网
: 论坛:
程序员情感CBD
: 贴子 835763
dead_lee
: 算是後者了, 當然要多加一層查詢, 把返回結果當作偽列來處理.
[阅读: 447] 2010-08-05 03:41:39
<空>
相关信息:
各位高手进:关于大数据量查询的b/s设计 替代原delphi系统
(244字)
(
ahfei
[1769]
2010-08-03 10:40
)
是否可以自己写 SQL 来解决分段取的问题,而不是靠游标?
(空) (
pcplayer
[513]
2010-08-03 10:41
)
可以。但客户习惯了老的方式(delphi dbgrid全部列出那样),我分了页,他却要设成每页2000
(空) (
ahfei
[533]
2010-08-03 10:44
)
这个很简单,用户习惯了2000每页,其实他只是习惯了视觉上的,Delphi 2000每页显示器它也显示不完, 所以你只需要把UI整成好似2000每页一样
(14字)
(
lukejee
[566]
2010-08-03 11:13
)
重点是:如何在b/s下,保留oracle cusor ?
(空) (
ahfei
[466]
2010-08-03 11:16
)
你不是service side嘛, service side里面可以做手脚嘛
(空) (
lukejee
[481]
2010-08-03 11:21
)
请教怎么做?
(空) (
ahfei
[454]
2010-08-03 11:24
)
帮你召唤J2EE牛
(空) (
lukejee
[440]
2010-08-03 11:33
)
牛来了, 请google "web cache + j2ee"
(空) (
xman
[516]
2010-08-03 11:36
)
多谢多谢
(空) (
ahfei
[426]
2010-08-03 11:48
)
学习google,QQ的分页方式,用户向下滚动,数据再翻一页
(32字)
(
leejd
[600]
2010-08-03 10:51
)
这还是个次要问题
(86字)
(
ahfei
[504]
2010-08-03 11:11
)
数据的实时性要求不高的话,就加个cache 吧
(空) (
Apache
[448]
2010-08-03 13:18
)
继续求简单好用的解决方案
(空) (
ahfei
[472]
2010-08-03 16:11
)
企业应用不分页,主要是担心。。。。。。。。
(279字)
(
haitao
[532]
2010-08-03 16:22
)
如果不管这个。在b/s三层模式下,如何keep住上一个查询的结果集?
(空) (
ahfei
[479]
2010-08-03 16:28
)
如果是flash,也可以由客户端暂存了;如果要应用服务器暂存也可以,就要自己实现关联(以便下次再用和不会被别的客户端取得)和释放机制
(31字)
(
haitao
[530]
2010-08-03 16:36
)
客户端暂存也不合适,因为第一次查list的结果可能很大。只有服务器暂存,但这相当于一个中间层了,代价会很大
(空) (
ahfei
[519]
2010-08-03 16:51
)
flash暂存文件也就是ie的临时目录嘛。。。。。。。大,可以背景收取好了
(空) (
haitao
[552]
2010-08-03 16:58
)
list很大的话,不说占资源,弄到client时间花费已经太多了,可能用户只是看第一页。
(空) (
ahfei
[509]
2010-08-03 17:00
)
flash不能做到一边取一边显示?
(30字)
(
haitao
[449]
2010-08-03 17:03
)
现在是想这个思路,就查list每次重新查好了,用硬件抗过去
(空) (
ahfei
[464]
2010-08-03 17:04
)
还好,采用b/s的客户,一般对硬件的限制比较宽。。。。。。。。
(12字)
(
haitao
[440]
2010-08-03 17:08
)
flash用rpc,类似webservice,不能边取边显示
(空) (
ahfei
[499]
2010-08-03 17:05
)
flash的视频播放就是边取边播啊,dbgrid反而不行?
(31字)
(
haitao
[822]
2010-08-03 17:07
)
那个是流媒体。。。。自己做个socket server,是可以边取边显示,够复杂了。。。
(空) (
ahfei
[472]
2010-08-03 17:09
)
完整list是很大,但是可以每次仅仅取、暂存前5-10页的记录。。。。。。
(42字)
(
haitao
[789]
2010-08-04 09:41
)
B/S下大查询的问题,似乎没有什么好办法。无论是查出来再分页还是分段查询,都不好弄。
(45字)
(
疯子张
[630]
2010-08-03 16:45
)
同样困扰。看来只有上更强的硬件?
(空) (
ahfei
[435]
2010-08-03 16:52
)
数据不多的话,先拉到本地客户端来缓存
(空) (
leejd
[429]
2010-08-04 09:36
)
不可能的,查询条件每次都不一样,结果也不一样
(空) (
ahfei
[499]
2010-08-04 09:45
)
你是要解决查询慢的问题,还是结果显示问题?
(72字)
(
mhappy
[490]
2010-08-04 15:09
)
常见折衷办法,就是B/S和C/S两者都有,分分工嘛
(空) (
mhappy
[451]
2010-08-04 15:10
)
那还要B/S干什么呢?
(空) (
疯子张
[497]
2010-08-04 15:23
)
说的是系统的不同部分
(61字)
(
mhappy
[522]
2010-08-04 15:29
)
问题是这个系统本来就是C/S的,并不是非要B/S不可,用B/S不能解决问题,那还要B/S干啥?
(空) (
疯子张
[504]
2010-08-04 15:31
)
某银行的某系统就是这么不论不类,本来想用B/S替代C/S,结果没替换掉,客户端用C/S,接口用J2EE做,这不是找麻烦吗?
(空) (
疯子张
[520]
2010-08-04 15:33
)
情况不同
(空) (
mhappy
[446]
2010-08-04 15:36
)
差不多,如果不用b/s,客户干吗不继续用老系统?那我们也就赚不到钱了
(空) (
ahfei
[514]
2010-08-04 17:30
)
b/s做单向的发布性的工作,还是不错的
(132字)
(
haitao
[524]
2010-08-04 22:35
)
如果是分頁, 加偽列然後取特定結果集就好, 如果是用.net, 建議直接用reader讀下去, 取到自己想要的數據為止, 基於的假設是客戶不會翻頁太多次.
(空) (
dead_lee
[545]
2010-08-05 00:30
)
http://www.cndev.org/forum/m/835163.html
(空) (
ahfei
[512]
2010-08-05 10:03
)
如果你所謂查list的結果在每次翻頁都是一樣的, 可以緩存在session中,另外用標誌位控制是否需要刷新重查
(空) (
dead_lee
[556]
2010-08-05 10:17
)
继续讨论该问题。。概括起来就是b/s下大数据分页查询的实现方式。
(53字)
(
ahfei
[465]
2010-08-05 10:06
)
返回结果就500万条?用户自己也看不过来啊。。。。。。我还以为只是查询复杂所以慢,结果其实不多
(19字)
(
haitao
[565]
2010-08-05 10:09
)
不要试图修改业务模式。。因为上个版本就是这样的。
(39字)
(
ahfei
[489]
2010-08-05 10:16
)
完整list是很大,但是可以每次仅仅取、暂存前5-10页的记录。。。。。。 (42字) (haitao [4] 8-4 09:41)
(40字)
(
haitao
[597]
2010-08-05 10:19
)
这涉及到第2个问题
(119字)
(
ahfei
[486]
2010-08-05 10:47
)
那你只能在中间层做文章了,客户端么骗骗客户,号称返回500万条, 然后翻页是50条50条去中间层取,中间层么去实现原来的cursor保持功能
(空) (
lukejee
[571]
2010-08-05 10:20
)
目前想到的也是这个方法,但这个工作量就大了。
(空) (
ahfei
[490]
2010-08-05 10:52
)
要学会用钱摆平事情,这里牛这么多,随便外包下,大家都high嘛
(空) (
lukejee
[513]
2010-08-05 10:54
)
500萬也不多, 做好數據庫優化, 用數據庫端的分頁, 可以打到任意頁查詢返回速度在1秒以內的.
(空) (
dead_lee
[463]
2010-08-05 10:36
)
oracle 可以怎么做分页最快?
(81字)
(
ahfei
[474]
2010-08-05 10:44
)
mssql只有top n,后面有了按列序生成行号;mysql是提供了limit和skip,最容易!
(26字)
(
haitao
[1019]
2010-08-05 11:00
)
Oracle分页的话最简单的做法是用rownum,最快嘛我没发言权。
(空) (
Miracle
[508]
2010-08-05 11:09
)
它的rownum是指表里的记录存储顺序号,还是查询结果按order by后的顺序号?
(177字)
(
haitao
[473]
2010-08-05 11:16
)
是后者
(空) (
ahfei
[369]
2010-08-05 11:20
)
多加一层select
(129字)
(
一切为何
[434]
2010-08-05 11:27
)
二者都不是,快去读书!
(空) (
Miracle
[458]
2010-08-05 11:39
)
算是後者了, 當然要多加一層查詢, 把返回結果當作偽列來處理.
(空) (
dead_lee
[446]
2010-08-05 11:41
)
读读这个,帮你理解rownum
(79字)
(
Miracle
[604]
2010-08-05 11:25
)
oracle基本没怎么用,只是上次写所有数据库的分页时,关注过一下
(69字)
(
haitao
[497]
2010-08-05 11:30
)
後者, 比tmd的sqlserver好用太多了(2k之前, 2005據說改進了)
(空) (
dead_lee
[483]
2010-08-05 11:39
)
rownum是在where之后,order by之前分配的
(空) (
Miracle
[452]
2010-08-05 11:41
)
瞭解瞭解,這個也是我們常用的手段, 挑個不太錯的答案而已了
(空) (
dead_lee
[461]
2010-08-05 11:51
)
不是order by之后的,多么不保险啊。。。。。。不知道oracle怎么想的;mssql2005的rank就是必须指定order by什么的
(空) (
haitao
[511]
2010-08-05 12:18
)
sql server上我们用rank,速度还不错,不过记录比oracle少很多
(空) (
ahfei
[501]
2010-08-05 12:01
)
看到老M的憤怒,幫你改下sql.這個方法的好處就在於, 不關你實際的查詢sql如何寫,我就這麼統一包一層就可以分頁了.
(115字)
(
dead_lee
[522]
2010-08-05 11:44
)
这样更好,里面的原来的sql都不用任何改动
(空) (
haitao
[377]
2010-08-05 12:16
)
是的,所以可以寫個通用函數給所有程序員去調用.
(41字)
(
dead_lee
[474]
2010-08-05 12:41
)
数据库系统里先分页再传出,性能、效率怎么也好过数据传到外面甚至客户端再分页了
(107字)
(
haitao
[820]
2010-08-05 12:45
)
你這個想法絕對了, 業務sql如果太複雜, 數據庫端的分頁未見得就好
(187字)
(
dead_lee
[509]
2010-08-05 12:50
)
一旦有符合要求的數據就返回,那显然是没有order by了;分页肯定是有order by的
(291字)
(
haitao
[581]
2010-08-05 12:57
)
呃, 老大你果然是不看文檔就開始猜想...
(空) (
dead_lee
[372]
2010-08-05 14:00
)
要看这种细微之处的英文文档,基本就很吃力了,而机器翻译又更加帮不上忙了
(14字)
(
haitao
[508]
2010-08-05 14:15
)
可能你項目裏面用不到oracle, 無所謂了, 用的時候買本書好了.
(227字)
(
dead_lee
[543]
2010-08-05 14:46
)
db2的版本6好像就有rank语法的了
(101字)
(
haitao
[467]
2010-08-05 14:53
)
目前是用rownum,试过比rank要快
(空) (
ahfei
[452]
2010-08-05 11:19
)
建议读读我上面回给haitao的链接,如果你能耐住性子读到Pagination with ROWNUM 这一节,就算大功告成了。
(空) (
Miracle
[519]
2010-08-05 11:32
)
让数据库帮你保持状态,连接数多了,数据库服务器的压力就大了。具体到服务器硬件资源多大能支持多少连接,俺就不知道了。
(空) (
pcplayer
[717]
2010-08-05 11:40
)
欢迎光临本社区,您还没有登录,不能发贴子。请在
这里登录