是用固定表还是临时表的好?请有经验的开发人员入内指教,谢谢!

chenjiong 2002-11-25 08:57:31
用的是SQL SERVER:

  在客户端程序启动时,需要产生一张视图或是说表也可以的。它的数据是从其它多个表中取出形成的一张大表,内容比较多,有30个字段吧。
  我有两个选择:
  一、先按要查询出的字段做成一张表,设置好,然后用insert into 固定表 select.....一个存储过程来插入数据。这样的话只需要是在各表数据有变动的时候,执行一下就可以了。
  二、用临时表,在每次启动程序时先产生##临时表,也是用存储过程完成。这样的话就不用管各表的数据是否有变动,反正每次进入产生的数据大表都是最新的。另外还有两个简单的问题:1.由于表中有几个数字型的字段不能为Null值,所以产生临时表后得用update set 字段=0 ,不知临时表是否支持这种操作?按方法一的话当然是可以的了;2.多个用户使用时,每个客户端启动时都要产生一个临时表,相互之间会不会有冲突?表名称的冲突?sql server是如何处理这种事的呢?是后面的临时表覆盖老的,还是每个用户自己都有自己的临时表?

  第一次用这东东,不明白的地方请多指教!
...全文
149 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenjiong 2002-11-26
  • 打赏
  • 举报
回复
局部临时表的生存期为一个会话
//如果用这个,对于同一个连接的用户而言,每次查询或统计都要先生成临时表,那不是太重复了吧?
My_first 2002-11-26
  • 打赏
  • 举报
回复
用局部临时表。 对于每个用户的查询结果都不一样。如果你用##那大家都是用的一个,已不出乱子了。
chenjiong 2002-11-26
  • 打赏
  • 举报
回复
算了,想想还是用固定表好了,那样少些重复操作,虽然笨些。
chenjiong 2002-11-26
  • 打赏
  • 举报
回复
这个临时表主要是为了显示数据与统计用的,不用为修改等考虑。
我想可以用
if 有此临时表 then 程序启动
else 建立这个临时表

如何判断已经有这个临时表存在?笨方法我是知道的,不知sql server中有什么简便的?
深宇 2002-11-26
  • 打赏
  • 举报
回复
你看这样行不行,用用户的IP地址做表名,这样不是不会重复了吗?
深宇 2002-11-26
  • 打赏
  • 举报
回复
原来是要支持SQL语句的啊,不好意思
Andersgl 2002-11-26
  • 打赏
  • 举报
回复
我觉得...
应该考虑一下,多用户访问数据时出现的脏读数据,不可重复读等的问题.
即事务的概念问题.
chenjiong 2002-11-26
  • 打赏
  • 举报
回复
视图与内存表都不行。请仔细看我的要求。
深宇 2002-11-26
  • 打赏
  • 举报
回复
在客户端建立内存表不是更好吗?
bear_tj 2002-11-26
  • 打赏
  • 举报
回复
难道用视图不行吗?
chenjiong 2002-11-26
  • 打赏
  • 举报
回复
还有:
  第一个连接用户建立了一个全局临时表 temp,又有一个用户连接上来,它也要建立这么一个临时表时,是否是覆盖前一个用户名建立的临时表?
chenjiong 2002-11-26
  • 打赏
  • 举报
回复
insert to ##temp我记得是全局临时表吧?
如何避免每个用户连接时都要产生一个全局临时表?如果每个用户连接时都产生一个全局临时表,有无冲突?如何才能在建立这个临时表前早先检查,库中已经有此临时了(这样就不建立了).
还有一个问题:基于连接的全局临时表,是否是等到没有用户连接时才自动清除的?还是到建立它的用户退出连接时就清除了?我想应该是前者吧?
如果是前者,那么当各表中有更改时,如何及时的反映到临时表中?
lghzl 2002-11-26
  • 打赏
  • 举报
回复
可以建视图和触发器,每次数据变化自动执行触发器,根本不需要自己处理,但速度可能会慢一点。
cgh1970 2002-11-25
  • 打赏
  • 举报
回复
up
gmc007 2002-11-25
  • 打赏
  • 举报
回复
在SQL SERVER中,临时表有两种
一为局部临时表,一为全局临时表
局部临时表的生存期为一个会话
全局临时表的生存期为一个连接
所以,每个用户都会有自己的局部临时表,而全局临时表则可以服务于每个用户。

建议查看连机帮助!
或MSDN
chenjiong 2002-11-25
  • 打赏
  • 举报
回复
对于这个问题呢:
2.多个用户使用时,每个客户端启动时都要产生一个临时表,相互之间会不会有冲突?表名称的冲突?sql server是如何处理这种事的呢?是后面的临时表覆盖老的,还是每个用户自己都有自己的临时表?
huangbaoty 2002-11-25
  • 打赏
  • 举报
回复
Delphi 对临时表支持得很好,UPDATE SET 可以对表进行字段赋值
代码下载地址: https://pan.quark.cn/s/068306a56640 在交通运输科学范畴内,交通流量分配是探讨交通系统内交通负荷如何在各个道路路段间进行合理分配的核心议题。交通流分配技术主要应用于模拟和推演交通系统的运行状态,旨在为城市规划人员与交通工程师提供优化道路布局的参考,进而缓解交通拥堵现象,提升道路交通的整体效能。以下将对"交通流分配技术"进行深入阐述: 1. **全部或无分配(All-or-Nothing Distribution)** 全部或无分配是一种基础的交通流分配策略。该技术依据最短路径准则,预设所有从发源地(Origin)至目的地(Destination)的车辆都将选择路程最短的路线。倘若存在多条等长路径,则采用随机方式确定其中一条。此类方法未将交通拥堵因素纳入考量,因为一旦选定路径,便假定所有交通量将沿此路径通行,即便这可能导致部分路段出现超负荷状况。 2. **逐步分配(Progressive Assignment)** 逐步分配技术顾及了交通网络的动态特征。该算法通过逐步优化流量配置,力求使网络内行驶的总代价(诸如通行时间、距离等指标)最小化。运算过程始于初始的全部或无分配状态,随后逐步修正路径选择,直至网络达成稳定状态,即每次流量修正后,总代价的变动幅度不再明显。此方法更贴近现实交通场景,因为车辆会依据即时路况选择最优路径。 3. **迭代平均分配(Iterative Average Distribution)** 迭代平均分配是一种对逐步分配技术的优化版本,其更侧重于实现网络流量的均衡化。在每一轮迭代过程中,算法不仅评估当前路径的优化程度,同时参考前一次迭代的流量配置。通过融入平均化理念,该方法能更有效地分散交通...

2,508

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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