SQL查询效率问题....数据量很大

有一张表(主表)info字段自动增长主键id,用户号code,公司CP,内容msg.其中该表保守估计应该有7万8千条数据,不是作业备份的话,有时候可能超过10W条。cod... 有一张表(主表) info 字段自动增长主键id,用户号code,公司CP,内容msg.其中该表保守估计应该有7万8千条数据,不是作业备份的话,有时候可能超过10W条。 code和CP唯一确定一个人。

附表 users 通过info的code跟CP关联...要从users里面找到 姓名 name,这样表 数据最多估计就1000条

附表 dept 通过CP的值获取公司的名字deptName.....数据最多100条,但是字段特别多,有20个字段...

通过查询的就是 通过存储过程传递两个参数code cp找到该用户的信息...返回的是info的所有字段,users表的name,dept表的deptName。。。

问题,怎么写这个代码 会让查询的效率高一些呢

我的做法是:info code字段做了个索引..cp(没有做,因为CP的值就只有3个)
我是 select i.*,us.name,d.deptName from info i left join users us on i.cp=us.cp and i.code=users.usercode
left join dept d on i.cp=dept.cp
where code=@code and cp=@cp

但是查询貌似卡蛮久的,我是SQL的小白。。求改善一下代码的逻辑
对了,他本身的那个info表 就有一个聚集索引 是自动id+code的聚集索引...我后面非聚集索引..是不是画蛇添足啊?

因为我感觉那个ID根本就没有用,我想删掉这个聚集索引,只用code来做,貌似删不掉的样子,所以我就添加了个非聚集索引

sql数据库
展开
 我来答
chen_hongyang
2014-09-09 · TA获得超过5447个赞
知道大有可为答主
回答量:2790
采纳率:91%
帮助的人:873万
展开全部
要做一个code+cp的非聚合索引,还有你把语句放在SQL managment studio,按上面按钮 显示估计的执行计划 就可以看到哪里需要时间最多,然后建立索引。
更多追问追答
追问
CP用的不多,也需要做?
还有那个原来的 聚集索引碍不碍事 就是主键ID跟code的索引
追答
不是只对CP做索引,是对code+cp做索引,还有你把语句放在SQL managment studio,按上面按钮 显示估计的执行计划 就可以看到哪里需要时间最多,再对应处理,这里是最准的,如果你不改表结构的话
adaishiye
2014-09-09
知道答主
回答量:29
采纳率:0%
帮助的人:4万
展开全部
oracle 数据库吗?
追问
sql sever 2008
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式