网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.在SQL Server 2005中解决死锁.
.sqlserver通过脚本创建定时任务.
.SQL Server Express 数据库自动部.
.SQL高手篇:精妙SQL语句介绍.
.sql server 2005中新增的bulk功能 .
.通过两个例子讲解PIVOT/UNPIVOT的.
.数据仓库基本报表制作过程中的SQ.
.SQL Server数据库sa密码相关问题.
.SQL 2005日志文件损坏后应当如何.
.如何将SQL Server表驻留内存和检.
.建索引(尤其是主键)时请注意索.
.SQLServer分页查询通用存储过程.
.全文本检索的应用(3).
.SQL SERVER 2000系统支持的跟踪函.
.配置SQL Server 2000选项.
.讲解如何检查使用空间大于90%的表.
.数据复制的基本理念与复制技术面.
.讲解SQL Server图像与大文本的输.
.ASE锁模式:AllPages DataPages .
.生成50万条记录的大数据表的TSQL.

SQL 视图效率和连接超时设置

发表日期:2007-1-25


在使用视图的过程中碰到了很多问题,其实试图并不能真正提高效率,只是更加方便的给用户提供了操作,使用户有了更加条理的思路,使用视图时能用连接就用连接,而子查询效率明显差很远。

以下是我的对比:

CREATE VIEW DCLSVIEW AS SELECT ksjbxx.zkzh, ksjbxx.xm, ksjbxx.sfzh, ksjbxx.xb, ksjbxx.csny,ksjbxx.szxx, isnull((SELECT sfbhb.mc   FROM sfbhb  WHERE sfbhb.bh = ksjbxx.szsf),  '') AS sfmc,isnull((SELECT mc FROM kdxx WHERE kdxx.bh = ksjbxx.ksdd), '') AS ksdd, ksjbxx.ksh,isnull((SELECT kslbbhb.mc  FROM kslbbhb  WHERE kslbbhb.bh = ksjbxx.kslb), '') AS kslb,isnull((SELECT zyfxbhb.mc  FROM zyfxbhb  WHERE zyfxbhb.bh = ksjbxx.zyfx), '') AS zyfx,ksjbxx.txdz,ksjbxx.cf AS cf , isnull((select jf from zyfs where zkzh = ksjbxx.zkzh and kmbh =001 ),'0') as zyf001 , isnull((select jf from zyfs where zkzh = ksjbxx.zkzh and kmbh =002 ),'0') as zyf002 , isnull((select jf from zyfs where zkzh = ksjbxx.zkzh and kmbh =003 ),'0') as zyf003 , isnull((select jf from zyfs where zkzh = ksjbxx.zkzh and kmbh =004 ),'0') as zyf004 , isnull((select jf from zyfs where zkzh = ksjbxx.zkzh and kmbh =005 ),'0') as zyf005 , isnull((select jf from zyfs where zkzh = ksjbxx.zkzh and kmbh =006 ),'0') as zyf006 , isnull((select jf from zyfs where zkzh = ksjbxx.zkzh and kmbh =007 ),'0') as zyf007 , isnull((select jf from zyfs where zkzh = ksjbxx.zkzh and kmbh =008 ),'0') as zyf008 , isnull((select jf from zyfs where zkzh = ksjbxx.zkzh and kmbh =009 ),'0') as zyf009 , isnull((select jf from zyfs where zkzh = ksjbxx.zkzh and kmbh =010 ),'0') as zyf010 , isnull((select hdf from whfslrb where whfslrb.zkzh = ksjbxx.zkzh and whfslrb.whkm =01 ),'0') as whf01, isnull((select hdf from whfslrb where whfslrb.zkzh = ksjbxx.zkzh and whfslrb.whkm =02 ),'0') as whf02, isnull((select hdf from whfslrb where whfslrb.zkzh = ksjbxx.zkzh and whfslrb.whkm =03 ),'0') as whf03, isnull((select hdf from whfslrb where whfslrb.zkzh = ksjbxx.zkzh and whfslrb.whkm =04 ),'0') as whf04, isnull((select hdf from whfslrb where whfslrb.zkzh = ksjbxx.zkzh and whfslrb.whkm =05 ),'0') as whf05, isnull((select hdf from whfslrb where whfslrb.zkzh = ksjbxx.zkzh and whfslrb.whkm =06 ),'0') as whf06, isnull((select hdf from whfslrb where whfslrb.zkzh = ksjbxx.zkzh and whfslrb.whkm =07 ),'0') as whf07, isnull((select hdf from whfslrb where whfslrb.zkzh = ksjbxx.zkzh and whfslrb.whkm =08 ),'0') as whf08, isnull((select hdf from whfslrb where whfslrb.zkzh = ksjbxx.zkzh and whfslrb.whkm =09 ),'0') as whf09 , isnull((select jzzf from zyfzfb where zkzh =ksjbxx.zkzh),'0') as zyfjzzf,isnull((select place from zyfzfb where zkzh =ksjbxx.zkzh),'0') as place ,isnull((select sfplace from zyfzfb where zkzh =ksjbxx.zkzh),'0') as sfplace ,isnull((select zyzysx from syb where syb.zkzh = ksjbxx.zkzh and syb.zyzysx = 1),'') as zysx1 ,isnull(( select mc from whklbbhb where whklbbhb.bh in (select whkslb from whfs where whfs.zkzh = ksjbxx.zkzh)),'') as whkslb,isnull((select whfzf from whfs where whfs.zkzh = ksjbxx.zkzh ),'') as whfzf ,isnull((select whfzfdl from whfs where whfs.zkzh = ksjbxx.zkzh),'') as whfzfdl , isnull((select sfgsk from whfs where whfs.zkzh = ksjbxx.zkzh),'') as sfgsk  ,isnull((select case lqzt when '1' then '是' when '0' then '否' else null end  from ylqxx where ylqxx.zkzh = ksjbxx.zkzh ),'') as ylqzt  ,isnull((select case sfzzlq when '1' then '是' when '0' then '否' else null end  from zzlqxx where zzlqxx.zkzh = ksjbxx.zkzh ),'') as zzlqzt  from ksjbxx

以上试图的查询可能会用到三分多钟,

如果用下面师徒的创建过程,可能你只需要十秒不到的时间

SELECT dbo.ksjbxx.zkzh, dbo.ksjbxx.xm, dbo.ksjbxx.sfzh, dbo.ksjbxx.xb, dbo.ksjbxx.csny,
      dbo.ksjbxx.szxx, dbo.sfbhb.mc AS sfmc, dbo.kdxx.mc AS ksdd, dbo.ksjbxx.ksh,
      dbo.kslbbhb.mc AS kslb, dbo.zyfxbhb.mc AS zyfx, dbo.ksjbxx.txdz, dbo.ksjbxx.cf,
      dbo.zyfzfb.zyfzf, dbo.zyfzfb.jzzf AS zyfjzzf, dbo.zyfzfb.place, dbo.zyfzfb.sfplace,
      dbo.whklbbhb.mc AS whkslb, dbo.whfs.whfzf, dbo.whfs.whfzfdl, dbo.whfs.sfgsk,
      dbo.ylqxx.lqzt AS ylqzt, zyfxbhb_1.mc AS ylqzy, dbo.zzlqxx.sfzzlq AS zzlqzt,
      zyfxbhb_2.mc AS zzlqzy
FROM dbo.ksjbxx LEFT OUTER JOIN
      dbo.sfbhb ON dbo.ksjbxx.szsf = dbo.sfbhb.bh LEFT OUTER JOIN
      dbo.kslbbhb ON dbo.ksjbxx.kslb = dbo.kslbbhb.bh LEFT OUTER JOIN
      dbo.zyfxbhb ON dbo.ksjbxx.zyfx = dbo.zyfxbhb.bh LEFT OUTER JOIN
      dbo.kdxx ON dbo.ksjbxx.ksdd = dbo.kdxx.bh LEFT OUTER JOIN
      dbo.zyfzfb ON dbo.ksjbxx.zkzh = dbo.zyfzfb.zkzh LEFT OUTER JOIN
      dbo.whfs ON dbo.ksjbxx.zkzh = dbo.whfs.zkzh LEFT OUTER JOIN
      dbo.whklbbhb ON dbo.ksjbxx.wllb = dbo.whklbbhb.bh LEFT OUTER JOIN
      dbo.ylqxx ON dbo.ksjbxx.zkzh = dbo.ylqxx.zkzh LEFT OUTER JOIN
      dbo.zyfxbhb zyfxbhb_1 ON dbo.ylqxx.lqzy = zyfxbhb_1.bh LEFT OUTER JOIN
      dbo.zzlqxx ON dbo.ksjbxx.zkzh = dbo.zzlqxx.zkzh LEFT OUTER JOIN
      dbo.zyfxbhb zyfxbhb_2 ON dbo.zzlqxx.zyfx = zyfxbhb_2.bh

还有如果在操作时出现了:

你有两步走:

企业管理器-->数据库-->属性,在属性里边有数据文件和事务日志,这两个文件有增长规则,按照%增长和按照字节增长,一般默认是按照10%增长.如果数据库过大,按照10%增长,这样就会造成数据长时间无法响应.同时在任务管理器中也是查不到SQL无响应,所以造成连接超时,建议将这个调小.控制在5%以内(较佳)

同时将数据库连接时间设置调大些, 企业管理器-->工具-->SQL Server 配置属性,选择连接选项,修改连接时间.

将这两个修改后,应该没问题了..................

上一篇:SQLServer数据库维护计划莫名其妙就失效的解决办法 人气:4051
下一篇:sql server 2005中的except和INTERSECT运算 人气:3536
浏览全部SQL 视图的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐