因为公司基本都是用存储过程所以本来写的干货基本都是存储过程的。
1
2
|
SELECT TOP 1 Code,Invitation,Num,Typ FROM SignLog WITH (NOLOCK) WHERE UserId=@userId AND TaskId=2 AND AddTime>=@stime AND AddTime<@etime |
用以上语句来说一下例子:
查询 一定要指定字段就算你要查全部字段也不要用*号来代替 ,以及 能用TOP尽量TOP
避免没必要的锁 必须加 WITH(NOLOCK) 避免产生没有必要的锁出来。
因为字段多,数据多一个索引没有走。
加了字段后就会快很多比你查全部的快很多,精准的查询。
------------------------------------------------------------------------------------------------------------
1
|
UserId=@userId AND TaskId=2 AND AddTime>=@stime AND AddTime<@etime<br data-filtered= "filtered" ><br data-filtered= "filtered" >如果UserId和AddTime是索引,TaskId不是,那像上面这样只会走一个索引。<br data-filtered= "filtered" ><br data-filtered= "filtered" > |
1
|
UserId=@userId AND AddTime>=@stime AND AddTime<@etime AND TaskId=2 |
1
|
如果改成上面这样就会走两个索引。<br data-filtered= "filtered" > ------------------------------------------------------------------------------------------------------------<br data-filtered="filtered"><br data-filtered="filtered"><br data-filtered="filtered">UPDATE SignLog SET NUM+=1 WHERE UserId=@userId AND AddTime>=@stime AND AddTime<@etime AND TaskId=2<br data-filtered="filtered"><br data-filtered="filtered">像上面这样的更改语句这样写是没有什么的,如果是在存储过程写的话像下面一样写会比你上面写法快。 |
DECLARE @ID INT=0 SELECT TOP 1 @ID=ID FROM SignLog WITH(NOLOCK) WHERE UserId=@userId AND AddTime>=@stime AND AddTime<@etime AND TaskId=2 UPDATE SignLog SET NUM+=1 WHERE ID=@ID
像这样写正常会快点,而且也不会产生没有必要的锁出来,而且该走的索引都走了。
能走索引就走索引,索引肯定比你正常的快丶丶。
-------------------------------------------------------------------------------------------------------------
UPDATE dbo.Activity_RoomActivity SET ActivityState=2 WHERE ActivityState=0 AND StartTime<DATEADD(hh,-1,GETDATE())
1
|
这样更新一个索引没有走上,而且还一条一条改。<br data-filtered= "filtered" ><br data-filtered= "filtered" >可以改成以下差不多的。<br data-filtered= "filtered" ><br data-filtered= "filtered" > |
SELECT Id INTO #temp FROM dbo.Activity_RoomActivity WITH(NOLOCK) WHERE ActivityState=0 AND StartTime<DATEADD(hh,-1,GETDATE()) UPDATE t1 SET t1.ActivityState=2 FROM dbo.Activity_RoomActivity t1,#temp t2 WHERE t1.Id=t2.Id
这样修改的时候就会走索引去修改。
1
|
<br data-filtered= "filtered" ><br data-filtered= "filtered" > |
1
|
<br data-filtered= "filtered" ><br data-filtered= "filtered" ><br data-filtered= "filtered" ><br data-filtered= "filtered" ><br data-filtered= "filtered" ><br data-filtered= "filtered" > |
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式