针对大数据量查询效率的经验
背景: 数据库:sqlserver2008 表:user_label 数据量126444016条记录 字段名称 ? ? 属性 user_id ? ??char(32) ? ? ? ?用户ID type_id ? ? ?int ? ? ? ? ? ?游戏类型 level_id ? ? ??smallint ? ? ? 游戏等级 需求: 根据用户ID查询用户所对应的游戏类型和游戏等级 实现方案1: select ??* ???from ??user_label ??where ??user_id = #value# 实现方案2: select ??* ???from ??user_label ??where ??user_id = ?convert(char(32),#value#) 结果: 方案1的sql通过预编译在数据库中的执行时间花费17秒,cpu消耗比较高。 方案2的sql通过预编译在数据库中的执行时间花费不到1秒,cpu基本上没怎么消耗。 分析总结: 传进去的字符串在sqlserver中转化成char(32)消耗的cpu,花费时间比较久。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |