索引的问题,急急急在线等

king2003 2007-03-05 02:29:19
SELECT c.cust_id,APP.ACCEPT_AS_ID,
ISNULL(ACC.ACCEPT_NO, '') AS ACCEPT_NO,
ISNULL(C.CUST_NAME, '') AS CUST_NAME,
ISNULL(C.TEL_NO1, '') AS CUST_TEL,
ISNULL(ACC.PROD_ID, '') AS PROD_ID,
ISNULL(ACC.ASC_CD, '') AS ASC_CD,
ISNULL(APP.REGIST_DT, '') AS REGIST_DT,
ISNULL(APP.REGIST_TT, '') AS REGIST_TT,
ISNULL(dbo.fn_GetCode('AS_LOSE_TYPE', APP.CANCEL_TYPE), '') AS CANCEL_TYPE,
ISNULL(dbo.fn_GetCode('AS_LOSE', APP.CANCEL_REASON), '') AS CANCEL_REASON,
ISNULL(APP.CANCEL_REASON_DESC, '') AS CANCEL_REASON_DESC
FROM AS_CANCEL_APPLY AS APP INNER JOIN ACCEPT_AS AS ACC ON APP.ACCEPT_AS_ID = ACC.ACCEPT_AS_ID
INNER JOIN CUST_MST AS C ON ACC.CUST_ID = C.CUST_ID

WHERE (APP.STATUS = 'N') AND (ACC.STATUS <> 'LOSS')
ORDER BY REGIST_DT DESC, REGIST_TT DESC


说明一下大概情况:
CUST_MST中有八百多万条数据我用计划任务分析这条语句时,CUST_MST中我所建的CUST_ID索引(非聚集)使用不到。执行的是全表扫描.而我把ISNULL(C.CUST_NAME, '') AS CUST_NAME,
ISNULL(C.TEL_NO1, '') AS CUST_TEL, 这两个字段注释掉的话。CUST_ID这个索引就可以使用了。这是为什么呀!!!!
...全文
287 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
king2003 2007-03-05
  • 打赏
  • 举报
回复
CUST_MST中CUST_NAME, TEL_NO1这两个字段的值有不到一千个NULL值
king2003 2007-03-05
  • 打赏
  • 举报
回复
不是索引快不快的问题是根本就用不到索引。
嘘嘘兔 2007-03-05
  • 打赏
  • 举报
回复
1、把CUST_NAME和TEL_NO1加入到索引CUST_ID中试试
2、ACC.STATUS <> 'LOSS'检索起来一定不会快
king2003 2007-03-05
  • 打赏
  • 举报
回复
dm_db_index_physical_stats分析结果:百分比很低我已经重建过了还是这样求高手帮忙
0 NULL 86.9983804210905
4 PK_CUST_MST_5 61.555164538954
6 IDX_CUST_MST_4 1.80993548112344
20 IDX_CUST_MST_2 4.78861270448269
21 IDX_CUST_MST_3 14.2735713351641
king2003 2007-03-05
  • 打赏
  • 举报
回复
索引情况说明:
IDX_CUST_MST_2 nonclustered located on CUST_FG TEL_NO1, TEL_NO2
IDX_CUST_MST_3 nonclustered located on CUST_FG TEL_NO2
IDX_CUST_MST_4 nonclustered located on CUST_FG CUST_NAME, TEL_NO1
PK_CUST_MST_5 nonclustered, unique located on PRIMARY CUST_ID

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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