sql2008无法读取视图数据表的记录数

tang688 2023-09-06 15:33:07

有一公司的老的管理系统,从之前的2003server系统,迁移到新的2012server系统中,数据库从sql2000迁移到sql2008.

现在的问题是程序会卡住,我一句一句测试发现,它无法读取到视图表中的记录数。造成无法分页,无法显示,我等一晚上,它也不显示。

而在2003系统中的sql2000时,能正常读取视图的记录数,并且分页显示。

请各位大伽,帮我看看,问题可能出在那?我要如何改进?

...全文
302 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yule.yang 2023-09-06
  • 打赏
  • 举报
回复
  1. SQL查询语句的问题:在旧的系统中,查询语句可能在SQL Server 2000中工作正常,但在SQL Server 2008中可能就不正常了。这可能是由于SQL语句中

  2. 使用了不再支持的语法或者函数,或者由于数据类型的不同所导致的。

  3. 视图的问题:视图可能在新系统中不再有效。在创建视图的SQL语句中可能存在一些在新系统中不再有效的语法或者函数。

  4. 网络的问题:如果数据库迁移后,网络设置发生了变化,那么可能导致连接问题,从而影响程序的读取操作。

  5. 程序代码的问题:程序可能存在一些与数据库版本相关的代码,这在新旧系统中表现不同。

tang688 2023-09-07
  • 举报
回复
@yule.yang 你们可能全没看清楚我的问题,我的问题不在查询是不是能完成。查询没问题,查询结果也能正常显示。只是我无法分页,因为无法读取查询结果的记录数(要用记录数计算页数)。 它的根本问题是无法读取查询结果的记录数这一点上,只要与记录数相关的语句它就卡住了。不出错,也不运行到下一条语句。
码头地盘 2023-09-06
  • 打赏
  • 举报
回复

能看下分页实现的sql语句么,可能这块可以优化下。

tang688 2023-09-07
  • 举报
回复
@码头地盘 是这样的,我用的是asp语言。
tang688 2023-09-07
  • 举报
回复
@tang688 sql="select * from 视图表名 where 条件" Set rs=CreateObject("adodb.recordset") rs.open sql,gconnect,1,1 '上面这里没问题,问题在: '如果我在这添加:a=rs.recordcount,也会卡在这一句上。rs.recordcount是刚开打开的这个表记录的数量 If qy="1" and rs.recordcount>0 Then ‘qy是全页显示的条件,当程序执行到这一句就无法往下了。 rs.pagesize=rs.recordcount '全页显示记录 else rs.pagesize=20 ‘一页显示20条记录 End if
tang688 2023-09-06
  • 打赏
  • 举报
回复

并且我全部显示有近10万条记录,有点久但好象也没花1-2小时,就能全部显示了。而我的程序什么都不干,只是读取该视图表的记录数,它就一直卡住,一晚也不运行到下一句。只是运行在读取视图表的记录数上了。

tang688 2023-09-06
  • 打赏
  • 举报
回复

但是如果想获得视图表的记录数量,它也不出错,只是一直卡着,不显示也不出错,cpu占比接近50%,显示是sql占用了cpu

tang688 2023-09-06
  • 打赏
  • 举报
回复

注意,它只是不能读取到记录的数量,无法进行分页等的计算。意思是:如果我不管记录的数量和分页,我只是显示前20条记录或是全部显示(会很久),它是没有问题的。可以显示出来。

29

社区成员

发帖
与我相关
我的任务
社区描述
专注数据相关领域,分享MySQL,数据分析,Python,Linux,大数据相关技术内容。
数据库sql数据库开发 个人社区 广东省·广州市
社区管理员
  • SQL数据库开发
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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