万商平台 万商平台
首页
  • 介绍

    • 平台介绍
    • 平台费用
    • 平台授权
  • 前端学习

    • JS教程
    • VUE教程
    • ES6教程
    • 常用JS
    • HTML
    • CSS
  • 后端学习

    • C#基础
  • 数据库

    • MSSQL
  • 常用工具

    • Git
    • Markdown
    • npm
  • 基础使用

    • 开始使用
  • 系统配置

    • 系统参数
    • 机构建立
  • 模块中心

    • 模块管理
    • 菜单管理
    • 定制开发
  • 第三方对接

    • 企业号
    • 服务号
    • 阿里云
  • 工作流

    • 工作流介绍
    • 流程设计
    • 工作流原理
  • 数据的定义

    • 有效数据定义
  • 大屏幕

    • 大屏幕介绍
    • 配置屏幕
  • 超级EXCEL BI

    • BI 演示
  • 分析报表

    • 四象限报表
  • 客户群体

    • 我们的客户
  • 在线商城

    • 商城
    • 食堂管理
    • 收银台
  • 医疗服务

    • 预约咨询
  • 房产金额

    • 房产服务
    • 金额APP
  • 公司内部服务

    • 办公用品
  • 经销商

    • 费用管理
    • 巡店管理
    • 软件对接
首页
  • 介绍

    • 平台介绍
    • 平台费用
    • 平台授权
  • 前端学习

    • JS教程
    • VUE教程
    • ES6教程
    • 常用JS
    • HTML
    • CSS
  • 后端学习

    • C#基础
  • 数据库

    • MSSQL
  • 常用工具

    • Git
    • Markdown
    • npm
  • 基础使用

    • 开始使用
  • 系统配置

    • 系统参数
    • 机构建立
  • 模块中心

    • 模块管理
    • 菜单管理
    • 定制开发
  • 第三方对接

    • 企业号
    • 服务号
    • 阿里云
  • 工作流

    • 工作流介绍
    • 流程设计
    • 工作流原理
  • 数据的定义

    • 有效数据定义
  • 大屏幕

    • 大屏幕介绍
    • 配置屏幕
  • 超级EXCEL BI

    • BI 演示
  • 分析报表

    • 四象限报表
  • 客户群体

    • 我们的客户
  • 在线商城

    • 商城
    • 食堂管理
    • 收银台
  • 医疗服务

    • 预约咨询
  • 房产金额

    • 房产服务
    • 金额APP
  • 公司内部服务

    • 办公用品
  • 经销商

    • 费用管理
    • 巡店管理
    • 软件对接
  • 前端学习

  • 后端学习

  • 数据库

    • MSSQL
      • SQL语句
        • 基础查询
        • 字符处理
        • 条件
        • SQL操作
      • SQL优化
        • 查看当前连接
        • 当前正在执行的SQL
        • 查看耗时长
        • 重建索引
    • olap发布到IIS
  • 常用工具

  • 开发学习
  • 数据库
万商技术-陈
2022-04-24
目录

MSSQL

# 数据库SQL

# SQL语句

# 基础查询


select * from table ;
select  count(distinct name) from table;
--不重复
select name from table group by name;

--2014及以后的分页
-- overall_count:总行数 、 从0开始总返回10条、 order by 语句必须存在
select *, overall_count = COUNT(1) OVER()  from table order by name  offset 0 rows fetch next 10 rows only;
--得到自增长ID
select @@IDENTITY

1
2
3
4
5
6
7
8
9
10
11
12

# 字符处理

--SQL 小数保留2位
Convert(decimal(18,2),num)

--判断
case when (sum([kaohejine])>0) then 0 else 1 end

--时间格式
CONVERT(varchar(12) , getdate(), 112 ) --20200606
CONVERT(varchar(12) , getdate(), 23 ) --yyyy-mm-dd
YEAR(GETDATE())--年
MONTH(GETDATE())--月
DAY(GETDATE())--日
DATEADD(MONTH, -1, GETDATE()) --增加-1月 
1
2
3
4
5
6
7
8
9
10
11
12
13

# 条件

-- 时间
DateDiff(mm,fjsj,getdate())=0  --本月

 GETDATE() between [KaiShi] and [JieShu] --这两个时间内,注意结束时间是0点

1
2
3
4
5

# SQL操作

--修改
UPDATE [NBWanS_XueXiJiLu] SET [Company] = '' WHERE id=3;

DELETE FROM  [NBWanS_XueXiJiLu] WHERE id=3;

--修改字段名
alter table 表名 rename column A to B

--修改字段类型
alter table 表名 alter column 字段名 type -- not null
--增加字段
alter table 表名 add 字段名 type -- not null default 0


1
2
3
4
5
6
7
8
9
10
11
12
13
14

# SQL优化

# 查看当前连接

select * from master.dbo.sysprocesses order by Blocked desc, waittime  desc
1

# 当前正在执行的SQL

SELECT   spid,
         blocked,
         DB_NAME(sp.dbid) AS DBName,
         program_name,
         waitresource,
         lastwaittype,
         sp.loginame,
         sp.hostname,
         a.[Text] AS [TextData],
         SUBSTRING(A.text, sp.stmt_start / 2,
         (CASE WHEN sp.stmt_end = -1 THEN DATALENGTH(A.text) ELSE sp.stmt_end
         END - sp.stmt_start) / 2) AS [current_cmd]
FROM     sys.sysprocesses AS sp OUTER APPLY sys.dm_exec_sql_text (sp.sql_handle) AS A
WHERE    spid > 50
ORDER BY blocked DESC, DB_NAME(sp.dbid) ASC, a.[text];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 查看耗时长

SELECT TOP 10[session_id],[request_id],
[start_time] AS '开始时间',[status] AS '状态',[command] AS '命令',
dest.[text] AS 'sql语句', 
 
DB_NAME([database_id]) AS '数据库名',[blocking_session_id] AS '正在阻塞其他会话的会话ID',
[wait_type] AS '等待资源类型',[wait_time] AS '等待时间',[wait_resource] AS '等待的资源',
[reads] AS '物理读次数',[writes] AS '写次数',[logical_reads] AS '逻辑读次数',[row_count] AS '返回结果行数'FROM sys.[dm_exec_requests] AS der 
CROSS APPLY 
sys.[dm_exec_sql_text](der.[sql_handle]) AS dest 
WHERE [session_id]>50   ORDER BY [cpu_time] DESC
1
2
3
4
5
6
7
8
9
10

# 重建索引


DBCC showcontig('xsfhdmx')
--如果结果中扫描密度小于70%时,或者逻辑扫描碎片大于30%时,即有必要去重建索引了。当然70%和30%只是参考值

--闲时执行
EXEC Sp_msforeachtable
  @command1="print '?' DBCC DBREINDEX ('?', '', 90)"
    go
  EXEC Sp_updatestats

1
2
3
4
5
6
7
8
9
10
上次更新: 2022/04/26, 16:00:33
C#基础
olap发布到IIS

← C#基础 olap发布到IIS→

最近更新
01
正则表达式
05-05
02
平台授权
05-03
03
预约咨询
04-26
更多文章>
万商平台 | Copyright © 2015-2023 宁波万商信息技术有限公司 浙ICP备15014676号-1 浙ICP备15014676号-3
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式