1

数据表列值转换为逗号分隔字符串

在开发SQL Server语序中,可能需要这样一个要求,把表中某一列的所有值转换为使用逗号分隔的字符串去呈现出来。 举个例子: IF OBJECT_ID('tempdb..#tempTable') IS NOT NULL BEGIN DROP TABLE #tempTable END CREATE ...

Insus.NET 发布于 2019-05-11 14:28 评论(3)阅读(332)
0

sqlserver的表变量在没有预估偏差的情况下,与物理表可join产生的性能问题

众所周知,在sqlserver中,表变量最大的特性之一就是没有统计信息,无法较为准备预估其数据分布情况,因此不适合参与较为复杂的SQL运算。当SQL相对简单的时候,使用表变量,在某些场景下,即便是对表变量的预估没有产生偏差的情况下,仍旧会有问题。sqlserver的优化引擎对于表变量的支持十分不友好 ...

MSSQL123 发布于 2019-05-11 00:35 评论(0)阅读(68)
0

PostgreSQL 修改表字段常用命令

--数据库、模式、表名 "identities"."Test"."tab_test" --修改字段名 ALTER TABLE "identities"."Test"."tab_test" RENAME "u_name" to realname ; --添加字段 ALTER TABLE "identi... ...

低调码农哥! 发布于 2019-05-10 18:24 评论(0)阅读(267)
1

获取指定日期相关DATENAME和DATEPART数据

DATENAME和DATEPART有何区别,Insus.NET写成一个函数,可以方便查询与对比: 一个是返回一个字符串,另一个是返回一个整数。 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Cr ...

Insus.NET 发布于 2019-05-10 14:51 评论(0)阅读(171)
1

获取某一天所在周的开始日期和结束日期

指定一个日期,获取其所属周的开始日期和结束日期。以及前一周和后一周的开始日期和结束日期。 Insus.NET把这个功能写成一个自定义函数Table-values Functions。 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Aut ...

Insus.NET 发布于 2019-05-10 11:59 评论(0)阅读(53)
0

进销存数据库设计:采购订单

进销存的订单表设计这里只讨论最简单的业务流程,采购申请等业务流程不考虑包括主表(表头)和子表(明细表)主表:主要信息包括单据流水编码、供应商信息、订单类型、单据日期、制单人等等子表:主要信息是物料、数量以及价格主表相关设计如下()子表相关设计如下 ...

陈恩点 发布于 2019-05-10 11:11 评论(0)阅读(116)
0

SQL Server一个特殊的阻塞案例分析2

最近发现一个非常奇怪的阻塞问题,如下截图所示(来自监控工具DPA),会话583被会话1036阻塞,而且阻塞发生在tempdb,被阻塞的SQL如下截图所示,会话等待类型为LCK_M_S 因为DPA工具不好截取全部信息,使用下面SQL语句获取了阻塞会话的详细信息如下,来自Microsoft SQL Se... ...

潇湘隐者 发布于 2019-05-10 11:08 评论(2)阅读(127)
1

前导或后导字符串

根据需求,需要把某一些数字或字符串进行格式化,前导或后导字符串。Insus.NET把这个功能写成一个自定义函数。需要时,直接使用即可。 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Create ...

Insus.NET 发布于 2019-05-10 10:14 评论(0)阅读(60)
1

指定日期,判断其所属年份是否为闰年

很早以前,写过一个函数,是获取二月份的天数。《T-SQL获取二月份天数》https://www.cnblogs.com/insus/archive/2011/04/22/2025019.html 其中这个函数内就此相关的判断: SET ANSI_NULLS ON GO SET QUOTED_IDEN ...

Insus.NET 发布于 2019-05-09 23:45 评论(0)阅读(61)
1

获取某一日期所在月份的第一天日期或最后一天日期

获取指定日期所属月份的第一天日期: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Create date: 2019-05-09 -- Update date: 2019-05-09 -- De ...

Insus.NET 发布于 2019-05-09 22:53 评论(0)阅读(98)
1

获取某一年的天数

在MS SQL Server中,获取某一年的天数。 你可以先参考下面这篇《获取指定日期所属年份的第一天日期或最后一天日期》 https://www.cnblogs.com/insus/p/10839469.html 就可以使用MS SQL 的一个DATEDIFF函数算出这2个日期之间的日期间隔了。 ...

Insus.NET 发布于 2019-05-09 20:29 评论(0)阅读(32)
1

获取指定日期所属年份的第一天日期或最后一天日期

写了2个自定义函数,获取指定日期所在年份的第一天日期或最后一天的日期: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Create date: 2019-05-09 -- Update date ...

Insus.NET 发布于 2019-05-09 16:51 评论(0)阅读(102)
1

判断临时表是否存在

在SQL开发过程中,经常需要创建临时表。在创建时,需要判断所创建的临时表是否存在,如果存在,把它DROP掉: IF OBJECT_ID('tempdb..#tempTable') IS NOT NULL BEGIN DROP TABLE #tempTable END ...

Insus.NET 发布于 2019-05-09 15:59 评论(0)阅读(34)
1

获取当月的天数列表

实现这个功能,先参考下面几篇博文《T-SQL获取二月份天数》https://www.cnblogs.com/insus/archive/2011/04/22/2025019.html 《如何获取月份的天数》https://www.cnblogs.com/insus/archive/2011/09/1 ...

Insus.NET 发布于 2019-05-09 14:28 评论(0)阅读(108)
2

(1)SQL Server内存浅探

1.前言 对于数据库引擎来说,内存是一个性能提升的重要解决手段。把数据缓存起来,可以避免在查询或更新数据时花费多余的时间,而这时间通常是从磁盘获取数据时用来等待磁盘寻址的。把执行计划缓存起来,可以避免重复分析执行计划时带来额外的CPU及各种资源的开销。通过在内存中开辟查询内存空间,可以迅速地完成排序 ...

暗断肠 发布于 2019-05-09 10:38 评论(0)阅读(318)
1

计算字符串中各个字符出现的次数

计算字符串中各个字符出现的次数,当然也可以计算某一字符出现的次数了。 解决这个问题,可以参考这篇《拆分字符串存入表中》https://www.cnblogs.com/insus/p/10836310.html DECLARE @strs NVARCHAR(100) = N'adgtryaserfg' ...

Insus.NET 发布于 2019-05-09 08:48 评论(0)阅读(86)
1

拆分字符串存入表中

MS SQL 处理字符串,可以把字符串拆分为单独字符,转存入至一张表中。这样可以做到很多其它相关处理。 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Create date: 2019-05-0 ...

Insus.NET 发布于 2019-05-09 08:04 评论(0)阅读(60)
0

SQL Server Sleeping会话占用内存资源浅析?

在SQL Server中,会话的状态有运行(Running)、睡眠(Sleeping)、休眠(Dormant)、Preconnect 等状态,有时候你会在数据库中看到很多会话处于睡眠(Sleeping)状态,那么这些睡眠(Sleeping)状态的会话会消耗CPU、Memory资源吗?如果消耗资源的话... ...

潇湘隐者 发布于 2019-05-08 23:08 评论(0)阅读(135)
0

SQL Server阻塞的检查

1. 阻塞 除了内存、CPU、I/O这些系统资源以外,阻塞和死锁是影响数据库应用性能的另一大因素。 所谓的「阻塞」,是指当一个数据库会话中的事务,正在锁定其他会话事务想要读取或修改的资源,造成这些会话发出的请求进入等待的状态。SQL Server 默认会让被阻塞的请求无限期地一直等待,直到原来的事务 ...

东山絮柳仔 发布于 2019-05-08 16:19 评论(0)阅读(85)
0

SQL Server 完整备份遇到的一个不常见的错误

1. 错误详情 有一次在手动执行数据库完整备份时遇到如下错误: 执行多次都是这个错误信息。 提示无法生成检查点,原因可能是由于系统资源(如磁盘或内存空间)不足或者有时是由于数据库损坏而造成的。 我们检查数据库资源可以排除磁盘资源不足的情况。 2.检查点相关知识 事务日志、数据文件 和 checkpo ...

东山絮柳仔 发布于 2019-05-08 11:26 评论(0)阅读(65)