(紧急求助)数据库访问越来越慢,有什么解决办法?

hustwjz 2005-05-17 12:51:01
现在数据库中某个表已经有将近3万笔数据,当客户端的程序连接SQL SERVER时经常出现连接超时的错误。
服务器的配置为512MB内存,1.5G的CPU,WIN2000 SERVER的操作系统。
连接数据库时打开了一个很复杂的视图,视图脚本如下
SELECT dbo.OrderS.单号, dbo.OrderS.类别, dbo.OrderS.紧急件, dbo.NeedPart.缺少,
dbo.OrderS.定制, dbo.OrderS.提出日期, Employee_2.姓名 AS 提出,
Employee_1.姓名 AS 销售, dbo.Customer.客户名称, dbo.Customer.类别 AS 客户类别,
dbo.OrderS.交货日期, dbo.OrderS.附件名称, dbo.OrderS.附件,
V_CheckOrder_1.同意 AS 销售管理科, V_CheckOrder_1.日期 AS 销售管理科日期,
V_CheckOrder_1.CheckCount AS 销售次数, V_CheckOrder_2.同意 AS 技术,
V_CheckOrder_2.日期 AS 技术日期, V_CheckOrder_2.CheckCount AS 技术次数,
V_CheckOrder_3.同意 AS 生产计划, V_CheckOrder_3.日期 AS 生产计划日期,
V_CheckOrder_3.CheckCount AS 计划次数, V_CheckOrder_4.同意 AS 生产制造,
V_CheckOrder_4.日期 AS 生产主管日期, V_CheckOrder_4.CheckCount AS 生产次数,
V_CheckOrder_5.同意 AS 财务主管, V_CheckOrder_5.日期 AS 财务主管日期,
V_CheckOrder_5.CheckCount AS 财务次数, V_CheckOrder_7.同意 AS 采购主管,
V_CheckOrder_7.日期 AS 采购主管日期, V_CheckOrder_7.CheckCount AS 采购次数,
V_CheckOrder_9.同意 AS 销售副总, V_CheckOrder_9.日期 AS 销售副总日期,
V_CheckOrder_9.CheckCount AS 副总次数, V_CheckOrder_10.备注 AS 总经理,
V_CheckOrder_10.日期 AS 总经理日期, V_CheckOrder_10.CheckCount AS 总经理次数,
V_CheckOrder_11.备注 AS 董事长, V_CheckOrder_11.日期 AS 董事长日期,
V_CheckOrder_11.CheckCount AS 董事长次数, dbo.OrderS.备注, dbo.Customer.联系人,
dbo.Customer.电话1, dbo.OrderS.内部订单, dbo.Customer.电话2, dbo.OrderS.完毕,
dbo.OrderS.入库, dbo.OrderS.客户单号, dbo.OrderS.bSale, dbo.OrderS.bTech,
dbo.OrderS.bPlan, dbo.OrderS.bProd, dbo.OrderS.bMoney, dbo.OrderS.bBuy,
dbo.OrderS.bSaleMan, dbo.OrderStatus.备注 AS 生产状况, dbo.OrderS.车间,
dbo.OrderS.工作令, dbo.OrderS.SendF, dbo.OrderS.RequestF, dbo.OrderS.TechNO,
dbo.OrderS.TDate, dbo.OrderS.TCreator
FROM dbo.OrderS INNER JOIN
dbo.Employee Employee_1 ON dbo.OrderS.销售 = Employee_1.ID INNER JOIN
dbo.Employee Employee_2 ON dbo.OrderS.提出 = Employee_2.ID INNER JOIN
dbo.Customer ON dbo.OrderS.客户名称 = dbo.Customer.客户名称 LEFT OUTER JOIN
dbo.OrderStatus ON dbo.OrderS.生产 = dbo.OrderStatus.编号 LEFT OUTER JOIN
dbo.NeedPart ON dbo.OrderS.缺件 = dbo.NeedPart.ID AND
dbo.OrderS.单号 = dbo.NeedPart.订单号 LEFT OUTER JOIN
dbo.V_CheckOrder V_CheckOrder_1 ON
dbo.OrderS.销售管理科 = V_CheckOrder_1.ID AND
dbo.OrderS.单号 = V_CheckOrder_1.订单号 LEFT OUTER JOIN
dbo.V_CheckOrder V_CheckOrder_2 ON
dbo.OrderS.单号 = V_CheckOrder_2.订单号 AND
dbo.OrderS.技术 = V_CheckOrder_2.ID LEFT OUTER JOIN
dbo.V_CheckOrder V_CheckOrder_3 ON
dbo.OrderS.单号 = V_CheckOrder_3.订单号 AND
dbo.OrderS.生产计划 = V_CheckOrder_3.ID LEFT OUTER JOIN
dbo.V_CheckOrder V_CheckOrder_4 ON
dbo.OrderS.单号 = V_CheckOrder_4.订单号 AND
dbo.OrderS.生产主管 = V_CheckOrder_4.ID LEFT OUTER JOIN
dbo.V_CheckOrder V_CheckOrder_5 ON
dbo.OrderS.单号 = V_CheckOrder_5.订单号 AND
dbo.OrderS.财务 = V_CheckOrder_5.ID LEFT OUTER JOIN
dbo.V_CheckOrder V_CheckOrder_7 ON
dbo.OrderS.单号 = V_CheckOrder_7.订单号 AND
dbo.OrderS.采购 = V_CheckOrder_7.ID LEFT OUTER JOIN
dbo.V_CheckOrder V_CheckOrder_9 ON
dbo.OrderS.单号 = V_CheckOrder_9.订单号 AND
dbo.OrderS.销售副总 = V_CheckOrder_9.ID LEFT OUTER JOIN
dbo.V_CheckOrder V_CheckOrder_10 ON
dbo.OrderS.单号 = V_CheckOrder_10.订单号 AND
dbo.OrderS.总经理 = V_CheckOrder_10.ID LEFT OUTER JOIN
dbo.V_CheckOrder V_CheckOrder_11 ON
dbo.OrderS.单号 = V_CheckOrder_11.订单号 AND
dbo.OrderS.董事长 = V_CheckOrder_11.ID
请问有没有什么办法可以提高数据库的访问速度?
...全文
92 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mistyliu 2005-05-17
  • 打赏
  • 举报
回复
建立索引,优化查询语句
duanduan1122 2005-05-17
  • 打赏
  • 举报
回复
也就是在你的view上创建一个聚集索引。
duanduan1122 2005-05-17
  • 打赏
  • 举报
回复
创建index view,这样你的view中就有了数据,不用每次生成。速度会快的。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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