两张表 组织架构表(Organise) 和 工资发放历史记录表 (WagePerMonthHis) 两张表通过 Organise.Item_id 和 WagePerMonthHis.OrgIdS 进行关联 Organise表(以下简称O表)中大约有条记录个字段 ,WagePerMonthHis(以下简称W表)计有 万条记录 和 个字段 原程序中一段如下的语句 是查询所有不在W表的组织架构层级为2的记录 语句执行要秒之久,服务器的配置是比较高的:核心4CPU,G内存,且内存和CPU在执行时都没有出现瓶颈,开始以为是 (select OrgidS from WagesPerMonthHis where WagesYear='' and WagesMonth= '' Group by OrgidS,OrgNameS) 这条语句执行缓慢所致,单独执行这条却发现执行速度很快,大约不到2秒就出来了,于是症结出来了,是not in 这个全扫描关键词带来的性能下降.最直接的是导致页面失去响应,一个关键功能使用不了. 试了not exist语句,发现效果是一样的,并不象网上所说可以提高很多性能. 于是重新优化语句如下 改用左外连接(其实左连接也可以)后,整个语句执行速度为ms, 秒与ms 我想是很多人没想到的.
推荐整理分享sqlserver not in 语句使程充崩溃,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
SQL Server 置疑、可疑、正在恢复等情况分析 一、出错情况有些时候当你重启了数据库服务,会发现有些数据库变成了正在恢复、置疑、可疑等情况,这个时候DBA就会很紧张了,下面是一些在实践
insert select与select into 的用法使用说明 insertinto(列名)select列名from表名where条件--不创建表,只复制表数据select列名into表名(这个表名是不存在的)from表名where条件,--创建一张新表,只复制
sqlserver合并DataTable并排除重复数据的通用方法分享 代码如下:///summary///将两个列不同的DataTable合并成一个新的DataTable////summary///paramname="dt1"源表/param///paramname="dt2"需要合并的表/param///paramname="primaryKey"需