解决方案 »
- win7专业版安装SQL2005后,在使用中出现如下图的错误
- SQL Server 2005开发版支持全文搜索吗?
- 请邹建和牛人门来解决我的问题 一个服务器下将一个数据库完全复制到另一个数据库(包括内容,主键,存储过程,)的复制,请用SQL语句实现.谢谢!
- 大家来看看
- 如何给.mdf文件打包或加密,让自己可用,别人拷贝后附加数据库无法打开?
- 什么叫主键?
- 如何在sql sever2000字段中填写数据,在线等,急急
- 请教SQL SERVER 复制问题!
- 这个UPDATE怎么写????(sql 2000)
- 请教一个SQL查询问题
- 求下面这个sql语句怎么写
- 请问一下sql2000 为何最大返回值是500
Kq_temp 的表结构如何, 此表与kq_person 关联可能是査询效率低的原因之一.函数 dbo.getdata() 的作用能否通过表关联来实现? 此函数放在 WHERE 里面是查询效率低的原因之二.
from kq_temp a,kq_person b
where 1=1 and b.tstate in ('在职') and b.tdept!=19 and dbo.getdata(b.tdept) in ('生产部员工','品质部员工','工程部员工','仓管部员工')先把这个查询计划研究下
还有你怎么join的时候用 1=1 啊,这笛卡尔积之后的数据可大了
what does this mean? 1 always eaqual 1.
kq_temp a left join kq_person b on 1=1
没有关联2.
b.tdept!=19 and dbo.getdata(b.tdept)
这两个条件,都是不走 IX 的。3.最好有执行计划。
select b.id,b.tname,b.tcode,tdept,case when c.tworktype='33' then '白班' when c.tworktype='34' then '晚班' else '未知' end ,a.days,d.tgroup1
from kq_temp a
left join
(
select id,tname,tcode,dbo.getdata(tdept) tdept from kq_person
where tstate in ('在职') and tdept!=19 and dbo.getdata(tdept) in ('生产部员工','品质部员工','工程部员工','仓管部员工')
) b on 1=1
left join kq_worktype c on a.days=c.tdate and b.id=c.tperson_id
left join kq_personadd d on b.id=d.tperson_id
这样的数据量是庞大的喔.