sql server性能问题

peaty 2006-03-10 10:53:10
select top 1000
a.resume_id,
b.user_name,b.sex,datediff(yy,b.birthday,getdate()) age,
c.degree_name,b.work_year,
a.station,a.refresh_time
from t_resume a --大表
,t_person b --大表
,c_degree c --小码表
where a.person_id=b.person_id
and b.degree_id*=c.degree_id
and datediff(yy,b.birthday,getdate())>=18
and datediff(yy,b.birthday,getdate())<=60
and datediff(dd,a.refresh_time,getdate())<=30
and (b.open_mode='1' or
(b.open_mode='2' and not exists
(select * from t_blench_com_key
where person_id=a.person_id and '某某科技有限公司' like '%'+com_keyword+'%') ))
order by refresh_time desc


t_resume ,t_person 是几十万记录
t_resume_jobsort_exp 对应每个resume_id几条记录,带索引resume_id
t_person_area_exp 对应每个person_id几条记录,带索引person_id
t_blench_com_key 对应每个person_id几条记录,带索引person_id

帮我看一下sql有无问题,是否可以优化 :)

我现在测试起来 速度有点慢,现在的选择是 如果 实在有性能瓶颈,只能把t_person的主要字段 扔到 t_resume里,不过这样
就牺牲了结构的标准化...,可能会有数据冗余(目前还是1对1,以后可能一对多)
------
上线后估计每天有十几万的pv量
...全文
146 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
peaty 2006-03-14
  • 打赏
  • 举报
回复
UUUUUUUUUUUUUUUUUUUUUUUUUUp
WangZWang 2006-03-10
  • 打赏
  • 举报
回复
select top 1000 a.resume_id,b.user_name,b.sex,
datediff(yy,b.birthday,getdate()) age,c.degree_name,
b.work_year,a.station,a.refresh_time
from t_resume a Inner Join t_person b on a.person_id=b.person_id
left Join c_degree c on b.degree_id=c.degree_id
where (datediff(yy,b.birthday,getdate()) between 18 and 60) and
(datediff(dd,a.refresh_time,getdate())<=30) and
((b.open_mode='1') or (b.open_mode='2' and not exists
(select 1 from t_blench_com_key
where person_id=a.person_id and '某某科技有限公司' like '%'+com_keyword+'%')))
order by a.refresh_time desc

/*
在t_resume表的字段person_id, refresh_time 建立索引
在t_person表的字段person_id, degree_id,birthday,open_mode 建立索引
在c_degree 表的字段degree_id 建立索引
......................
还可以用临时表来进行筛选后连接,具体要根据时间情况,
写完SQL请多看一下sql工具的‘查询计划’,一步一步来进行优化处理。
wudan8057 2006-03-10
  • 打赏
  • 举报
回复
最好有表结构、索引、部分测试数据

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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