复杂数据表的构成...在线等...

TimLeaf 2008-11-03 09:25:59
简单的表间连接...得到的数据源并不能满足变态的需求...
还需要继续构造成一个复杂的数据源...

1.用存储过程来实现:因为牵扯行列置换...而且行列都不确定...可能会用游标来循环遍历多次...数据量也不小...

2.在后台代码中...构建DataTable...当然也是循环...

以上这两种解决方法哪种性能更好一点?或者...还有什么更好的方法...
...全文
97 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
h155290688 2008-11-03
  • 打赏
  • 举报
回复
我也要学习下交叉表 呵呵
tjhdaxia 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lee576 的回复:]
没有疑问的,再怎么也快不过直接在数据库中处理完再放到页面,你的datatable再怎么也快不过存储过程
[/Quote]

那你要看什么数据了,如果过于复杂的数据并且需要大量的重复查询,在datatable的速度是存储过程的n倍 具体多少倍没计算过随着查询的复杂datatalbe的速度将更加的明显,要知道datatable的查询是在内存中操作的速度是最快的。
lee576 2008-11-03
  • 打赏
  • 举报
回复
没有疑问的,再怎么也快不过直接在数据库中处理完再放到页面,你的datatable再怎么也快不过存储过程
tjhdaxia 2008-11-03
  • 打赏
  • 举报
回复
你想的太复杂了,使用临时表即可。
select * into #t from (你需要的复杂) as tb
进行逻辑处理
最后 drop table #t

得到的#t表就是列是根据你的复杂查询的。

这样子举一反三,你可以生成更多的临时表来方便你操作。
Longgreenlee 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wangkun9999 的回复:]
行列置换,lz还是从如何构建交叉表的概念上面下功夫吧,你说的那两种方案效率肯定不好。
1.用sql语句实现;
2.可以把数据写临时表。
[/Quote]
up
TimLeaf 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 findcaiyzh 的回复:]
感觉前者对数据库服务器计算能力要求高,后者对数据库客户端内存和网络带宽要求高。
看你的实际情况了。
[/Quote]
现有环境:数据库服务器和Web服务器是一个...

[Quote=引用 4 楼 winner2050 的回复:]
普普通通的交叉表应用就愁成这样,以后你还用写程序吗?
[/Quote]
我新人...主要是想从性能上考虑一下...很愁吗?呵呵...
交叉表...我还是第一次听说这个名词...学习一下去...

[Quote=引用 5 楼 yygyogfny 的回复:]
一般认为:离数据库越近的效率更高一些.
行列不确定也不一定非得用游标啊,除非你的数据记录还有很多逻辑需要处理.
[/Quote]
我数据库,学的不太好...问别的同事...他们说...这个地方需要用到游标...

[Quote=引用 6 楼 wangkun9999 的回复:]
行列置换,lz还是从如何构建交叉表的概念上面下功夫吧,你说的那两种方案效率肯定不好。
1.用sql语句实现;
2.可以把数据写临时表。
[/Quote]
嗯...好...这就看看...
wangkun9999 2008-11-03
  • 打赏
  • 举报
回复
行列置换,lz还是从如何构建交叉表的概念上面下功夫吧,你说的那两种方案效率肯定不好。
1.用sql语句实现;
2.可以把数据写临时表。
yygyogfny 2008-11-03
  • 打赏
  • 举报
回复
一般认为:离数据库越近的效率更高一些.
行列不确定也不一定非得用游标啊,除非你的数据记录还有很多逻辑需要处理.
winner2050 2008-11-03
  • 打赏
  • 举报
回复
普普通通的交叉表应用就愁成这样,以后你还用写程序吗?
gjfizx 2008-11-03
  • 打赏
  • 举报
回复
帮顶,mark
blue_apple2006 2008-11-03
  • 打赏
  • 举报
回复
不要在数据源内构造,我们公司都是拉的数据,但在页面表示的时候用自己的html来写的。不能用控件。
宝_爸 2008-11-03
  • 打赏
  • 举报
回复
感觉前者对数据库服务器计算能力要求高,后者对数据库客户端内存和网络带宽要求高。
看你的实际情况了。
lee576 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 tjhdaxia 的回复:]
引用 10 楼 lee576 的回复:
没有疑问的,再怎么也快不过直接在数据库中处理完再放到页面,你的datatable再怎么也快不过存储过程


那你要看什么数据了,如果过于复杂的数据并且需要大量的重复查询,在datatable的速度是存储过程的n倍 具体多少倍没计算过随着查询的复杂datatalbe的速度将更加的明显,要知道datatable的查询是在内存中操作的速度是最快的。
[/Quote]

我可是对着楼主的情况回答的

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧