SqlServer数据库
文章平均质量分 61
.NET跨平台
比较认真。编程就是算法和数据结构,算法和数据结构是编程的灵魂。
展开
-
GUID和INT两种数据类型做主键的比较
上面列出了GUID和INT两种数据类型做主键优缺点。我觉得,对于大数据量,建议使用guid做主键。而使用int会得到最佳的性能。转载 2024-07-25 23:45:00 · 87 阅读 · 0 评论 -
SqlServer知识归纳总结
有大量重复值、且经常有范围查询(between, >,< ,>=,< =)和order by、group by发生的列,可考虑建立群集索引;,脚本文件较大,gitee上需要下载。也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。语句必须拥有相同数量的列,且对应字段的数据类型相似,列的顺序须相同。为了得到完整结果,需要从两个或更多的表中获取结果,此时需要执行。经常同时存取多列,且每列都含有重复值可考虑建立组合索引;转载 2024-06-06 22:47:59 · 83 阅读 · 0 评论 -
sqlserver连接数限制
当然,另一个限制 SQL Server 连接数的因素是操作系统的最大并发连接数。其中, 是你想要设置的最大工作线程数量。请注意,调整最大工作线程数量可能会影响 SQL Server 的性能,因此你需要谨慎地进行调整。,这表示数据库引擎会根据处理器数量自动计算最大工作线程数量。SQL Server 的连接数是有限制的,这个限制是由数据库引擎的配置参数。如果你想增加最大并发连接数,可以通过更改注册表项的方式进行调整。决定了数据库引擎可以使用的最大工作线程数量。,而在 64 位系统上,最大工作线程数量为。转载 2024-05-15 22:25:52 · 941 阅读 · 0 评论 -
SQL Server查询获取不同性能指标的信息
这个查询将返回消耗CPU时间最多的查询的CPU使用量,以小时为单位,并将其命名为 “注释提供了关于查询目的和排序方式的说明。原创 2023-10-25 19:38:29 · 1171 阅读 · 0 评论 -
sqlserver分库分表后如何分页查询
在SQL Server中进行分页查询时,需要考虑到数据可能被分散存储在不同的库和表中。下面提供两种分页查询的方法,分别针对水平分库和垂直分表的情况。需要注意的是,在进行垂直分表的分页查询时,需要保证每个表中的列名和数据类型一致,否则可能会出现类型不匹配的错误。水平分库是指将数据按照某个条件分散存储在多个数据库中。垂直分表是指将一个表按照列的维度拆分成多个表。将多个表中的查询结果合并到一起,并按照指定的排序字段进行排序。然后再对合并后的结果进行分页处理。在上述示例代码中,我们使用。原创 2023-09-07 21:56:48 · 866 阅读 · 0 评论 -
使用Docker运行SQL Server
通过以上演示我们基本了解如何通过git跟docker配合在Ubuntu服务器上不安装.Net Core SDK来发布.Net Core 程序到容器中运行,并且通过shell脚本的方式再次简化发布。但是尽管这样每次发布都需要ssh到服务器上然后运行脚本,特别是开发环境可能经常需要发布,还是觉得麻烦。有没有什么办法让我们push代码后服务器自动就开始部署最新的代码的到容器中运行了呢?转载 2023-08-07 15:17:39 · 995 阅读 · 0 评论 -
SqlServer标量子查询示例
总之,标量子查询和JOIN都是SQL中非常有用的工具,具体使用哪种方式取决于具体的查询需求和数据结构。在优化查询时,可以尝试不同的方法,并通过性能测试和分析执行计划来选择最佳的查询结构。可能会更高效,但在其他情况下,保留标量子查询可能更清晰或更方便。,但并非所有情况下都适合转换。标量子查询可以在某些情况下转换为。原创 2023-07-23 21:12:52 · 358 阅读 · 0 评论 -
SqlServer窗口函数使用示例
SQL Server 提供了许多窗口函数,用于在查询结果集的子集上执行计算。原创 2023-07-23 21:11:42 · 653 阅读 · 0 评论 -
SqlServer视图索引用法和计算列索引用法
在 SQL Server 中,视图是一个虚拟表,可以通过它来访问存储在其他表中的数据。视图可以简化复杂查询并提高查询性能,而索引可以进一步提高视图的性能。其中index_name是索引的名称,view_name是要索引的视图的名称,是要包含在索引中的列的列表。OUTER JOIN。转载 2023-03-06 23:46:54 · 878 阅读 · 0 评论 -
SqlServer视图索引用法
在 SQL Server 中,视图是一个虚拟表,可以通过它来访问存储在其他表中的数据。视图可以简化复杂查询并提高查询性能,而索引可以进一步提高视图的性能。是要包含在索引中的列的列表。是要索引的视图的名称,原创 2023-03-01 01:22:26 · 2367 阅读 · 0 评论 -
SQL Server里使用 VIEW DEFINITION 权限
权限允许用户查看授予权限的安全对象的元数据。但是,权限不授予对安全对象本身的访问权限。例如,仅被授予对表的权限的用户可以在目录视图中查看与该表相关的元数据。但是,如果没有SELECT或CONTROL等附加权限,用户将无法从表中读取数据。如果您的用户在数据库中具有db_reader权限并且他/她试图生成表/对象的模式,他将无法执行此操作。您必须允许他/她这样做,这就是提供帮助的地方。现在使用 TestLogin 登录到您的 SQL Server 并尝试为表生成架构,您将无法执行此操作。转载 2022-12-27 08:45:00 · 932 阅读 · 1 评论 -
SQL Server 系统表介绍:sys.dm_exec_requests
针对 SQL Server 内正在执行的每个请求返回一行。和服务器范围动态管理视图映射到系统视图(先前为系统表)。若要执行在 SQL Server以外的代码(例如,扩展存储过程和分布式查询),则必须在非抢先计划程序的控制范围以外执行该线程。若要这样做,工作线程将切换到抢先模式。由此动态管理视图返回的时间值不包括在抢先模式下花费的时间。转载 2022-12-17 23:29:15 · 1432 阅读 · 0 评论 -
SQLServer 查询最近一天,三天,一周,一月,一季度数据的方法
sql得到当前系统时间得 日期部分。转载 2022-10-20 18:56:34 · 2278 阅读 · 0 评论 -
SQL语句 - 嵌套查询(SQLServer)
嵌套查询的意思是,一个查询语句()查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查询不仅仅可以用于父查询select语句使用。还可以用于语句或其他子查询中。转载 2022-10-20 14:21:07 · 17437 阅读 · 0 评论 -
sql server知识归纳总结
约束用于预防破坏表之间连接的动作;也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。的商贸公司数据作为示例。这个数据库作为示例讲解具有一定价值,但后期版本中重新引入了一个新的。语句必须拥有相同数量的列,且对应字段的数据类型相似,列的顺序须相同。为了得到完整结果,需要从两个或更多的表中获取结果,此时需要执行。约束唯一标识表中的每条记录。必须包含唯一的值,不能包含。SQL Server2000的时候,安装包中带了。值,每个表应该有且只有一个主键。下面是一些常用的查询题目。索引管理的sql脚本。转载 2022-10-19 19:37:08 · 270 阅读 · 0 评论 -
SQL Server Over开窗函数
在SQL SERVER 2005/2008支持两种排名开窗函数和聚集开窗函数。以SQL SERVER中分面页为例,按时间顺序列出定单号。其中就是排名函数,OVER()就是窗口函数。窗口函数OVER()指定一组行,开窗函数计算从窗口函数输出的结果集中各行的值。开窗函数不需要使用GROUP BY就可以对数据进行分组,还可以同时返回基础行的列和聚合列。转载 2022-10-17 17:19:05 · 514 阅读 · 0 评论 -
Sql server 开窗函数over()的语法
over用法一:与函数结合用,给结果进行排序编号,如图:用法二:跟聚合函数一起使用,利用over子句的分组效率比group by子句的效率更高。在Northwind数据库的订单表Orders中查询"订单id",“客户id”,“运费”,“所有订单的总数”,“每一个客户的总运费”,“所有客户的总运费”,“每一个客户的平均运费”,“所有客户的平均运费”,“每一个客户所有订单中最大的运费”,“所有客户中最大运费”,“每一个客户所有订单中最小的运费”,“所有客户中最小运费”,如下图:总结:运用开窗函数。转载 2022-10-08 00:09:11 · 4065 阅读 · 0 评论 -
SqlServer技巧:使用APPLY替代游标解决逐行运算问题
APPLY关键字是SQLServer版本中开始提供的一个系统关键字。APPLY的功能同联接很类似,APPLY运算分左右两个部分,APPLY的右表达式:左表达式的每一行都和右表达式进行一次计算,即右表达式需要根据左表达式提供的值进行相关计算来获取相关结果,然后返回给客户端。APPLY的右表达式:是一个子查询或表值函数。转载 2022-10-07 22:46:23 · 345 阅读 · 0 评论 -
sql先分组,再算百分比
【代码】sql先分组,再算百分比。转载 2022-10-01 21:25:36 · 1314 阅读 · 0 评论 -
SQLServer RANK() 排名函数、其他相关函数
(1)默认查询及对应字段 as 别名(2)进行 函数 排行 同时判断 组名不等于合计、不等于空 单独加上合计二、定义:函数作用就是将查询到的数据进行排序,每一条数据加一个序号,他不能用做于学生成绩的排名,一般多用于分页查询,定义:函数也是排名函数,和功能相似,也是对字段进行排名,那它和到底有什么不同那?答:密集的排名他和区别在于,排名的连续性,排名是连续的,是跳跃的排名,所以一般情况下用的排名函数就是。定义:函数是将有序分区中的行分发到指定数目的组中,各个组有编号,编号从1开始,就像我们说的’分区转载 2022-10-01 14:13:21 · 3210 阅读 · 0 评论 -
sqlserver中的循环遍历(普通循环和游标循环)
sql 经常用到循环,下面介绍一下普通循环和游标循环。转载 2022-09-30 09:25:34 · 5394 阅读 · 0 评论 -
SQL Server求解最近多少销售记录的销售额占比总销售额的指定比例
具体的问题描述我通过潇潇隐者的博文的截图来阐释:当看到这个问题的,我想到了是窗口函数提供的累积汇总有关的解决方案。得到的结果如下:注意:以上测试数据也是来自潇潇隐者的博文,我再次基础上做了调整。转载 2022-09-29 23:27:04 · 934 阅读 · 0 评论 -
sum()窗口函数的累加求和出错细节
使用窗口函数sum进行累计求和时:如果over子句中不对结果排序,想要直接进行累计求和时,需要用rows显示声明范围;如果使用order by A排序,但是没有显示声明范围或者声明为range,则A属性中相同的属性值对应的累加和是相同的。如果使用rows显示声明范围,则累加和就是范围声明的行的累加值,一般是第一行到当前行。使用sum()窗口函数时默认范围是range来规范的,所以最好使用rows显示声明范围,即可实现按行进行累加求和。转载 2022-09-26 23:25:44 · 1525 阅读 · 0 评论 -
SQL server sum() over 累加注意问题
sum over转载 2022-09-26 13:30:16 · 3660 阅读 · 0 评论 -
SqlServer_update set from的用法整理
名称,是不可以启用别名的。转载 2022-09-22 13:33:12 · 1385 阅读 · 0 评论 -
MSSQL Server中partition by与group by的区别
分组及排序的执行晚于“where,group by,order by(但此排序顺序优先级是最高的)”的执行。不合并(列1值相同的在一个区域,区域内部按列2排名)(列1和列2可以相同)合并(列值相同的并作一条记录)转载 2022-09-10 15:13:33 · 254 阅读 · 0 评论 -
SQL Server 环形缓冲区(Ring Buffer) -- SQL Server的Ring Buffer类型
SQL Server 操作系统(SQLOS)负责管理特定于SQL Server的操作系统资源。其中相关的动态管理试图将被标识为仅供参考。不提供支持。不保证以后的兼容性。先看看记录的不同的类型。每个类型都记录了大量的XML格式的记录。这些记录包含了最小的系统输出,用于帮助分析状态的变化提供更好的思路。- 监控资源的使用情况,可以提供分析物理内存压力的信息。- 监控逻辑调度器的状态,以及健康的记录类型。- 监控用于平衡缓存之间的内存分配的内部内存代理的行为。- 安全相关的错误信息。转载 2022-09-06 15:57:25 · 292 阅读 · 0 评论 -
SQL Server中CROSS APPLY和OUTER APPLY应用
号分隔的数据,我们处理的时候,可能要先把这个值,先分隔,然后把分隔后的每个值单独一行放在一张表中,然后对这个表做处理。这只是用其中一行做的处理,如果我们用上图的3行都做这样处理,把三行以。既返回生成结果集的行,也返回不生成结果集的行,其中表值函数生成的列中的值为。说明:只返回外部表中包含的数据行,这些航从表值函数中生成结果集。说明:无论联接是否存在,都会从外部表和表值函数中返回数据行。表示右输入,一般是表值函数,但亦可是视图、表、派生表。表运算符把右表表达式应用到左表表达式中的每一行。转载 2022-09-05 22:54:38 · 6606 阅读 · 1 评论 -
SQL Server Datetime2数据类型
要在数据库中存储日期和时间,请使用SQLServerDATETIME2数据类型。DATETIME2precision-小数秒精度是可选的,范围从0到7。以下语句说明了如何创建包含DATETIME2DATETIME2有两个组成部分日期和时间。日期范围为1月01日(0001-01-01)至12月31日(9999-12-31)时间范围为000000至235959.9999999。DATETIME2值的存储大小取决于小数秒精度。DATETIME2mm在上面的格式中,YYYY0001到。...转载 2022-07-28 13:40:49 · 4097 阅读 · 0 评论 -
位图索引和B tree索引的区别
(1)、与索引相关视图查询DBA_INDEXES视图可得到表中所有索引的列表;访问USER_IND_COLUMNS视图可得到一个给定表中被索引的特定列。(2)、组合索引概念当某个索引包含有多个已索引的列时,称这个索引为组合(concatented)索引。注意:只有在使用到索引的前导索引时才可以使用组合索引(3)、B*Tree索引B*Tree索引是最常见的索引结构,默认建立的索引就是这种类型的索引。B*Tree索引在检索高基数数据列(高基数数据列是指该列有很多不同的值)时提供了最好的性能。DML转载 2022-04-18 21:17:52 · 1153 阅读 · 0 评论 -
SQL truncate/delete/drop 区别
引言最近有人问我 SQL 中 truncate 和 delete 语句的区别。在自己接触的一些 SQL 运维脚本中,常见到的是 truncate 命令,我所了解的是它是删除表的数据但不会删除表结构。delete 没怎么接触过,于是查了下,原来深入下去,里面有很多的不同点,底下引用总结的好的一篇文章,得在以后花时间多多熟悉了。相同点truncate 和不带 where 子句的 delete 以及 drop 都会删除表内的数据。drop/truncate 都是 DDL 语句(数据定义语言),执行后转载 2022-04-18 13:27:40 · 299 阅读 · 0 评论 -
SQLSERVER聚集索引和主键的误区
很多人会把Primary Key和聚集索引搞混起来,或者认为这是同一个东西。这个概念是非常错误的。主键是一个约束(constraint),他依附在一个索引上,这个索引可以是聚集索引,也可以是非聚集索引。所以在一个(或一组)字段上有主键,只能说明他上面有个索引,但不一定就是聚集索引。例如下面:USE [pratice]GOCREATE TABLE #tempPKCL( ID INT PRIMARY KEY CLUSTERED --聚集索引)-------------------.转载 2022-03-20 14:11:27 · 1246 阅读 · 0 评论 -
SQLserver随机数函数
ALTER PROCEDURE [dbo].[usp_RandomNumber] ( @Len INT = 1, --随机数位数 @Rows INT = 1 --随机笔数 ) AS BEGIN DECLARE @T AS TABLE([Random Number] VARCHAR(MAX)) DECLARE @L INT = 1, @R INT = 1 WHILE @R <= @Rows BEGIN DECLARE @RN varchar(MAX) = '' WHILE @L转载 2022-03-17 18:23:50 · 2286 阅读 · 0 评论 -
sql server数据库中 INFORMATION_SCHEMA的用法
1.查询数据库的所有表:select * from INFORMATION_SCHEMA.TABLES2.查询表名为xxx的所有列的信息select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='Area'INFORMATION_SCHEMA视图可以检索数据库中的对象的元数据。您可以直接在当前实例的数据库调用需求的数据。另外值得称好的是,在SQL 2005和SQL 2008这些Information Schema views符合ISO标转载 2022-03-17 01:44:30 · 3766 阅读 · 0 评论 -
数据库基础信息查询
各版本数据库基础信息查询语句SqlServer查询database下所有表 select * from sysobjects where xtype = 'U'查询database下所有视图 select * from sysobjects where xtype = 'V'查询database下所有存储过程 select * from sysobjects where xtype = 'P'查询指定表或视图的字段信息 SELECT syscolumn转载 2022-03-05 14:51:23 · 481 阅读 · 0 评论 -
SQL汇总统计: 在SQL中使用CUBE和ROLLUP实现数据多维汇总
前面偶然在网上看到一篇文章,讲到数据汇总,提到了CUBE,感觉有些晦涩,想试着自己表述一下。同时,个人也认为CUBE还是很有用的,对SQL或数据分析感兴趣的小伙伴不妨了解一下,或许有用呢!首先,我们设定个需求,想要分别按【性别】、【籍贯】、【年龄】或【成绩级别】统计下表中学生的数量,再进一步,需要将这些条件相结合统计,同时满足某两项或更多条件的学生数量。数据表格如下:我们可以逐层来理解**【GROUP BY】【WITH ROLLUP】【WITH CUBE】**如何完成数据汇总。第一层:【GROUP转载 2022-03-01 23:50:15 · 6736 阅读 · 0 评论 -
SqlServer中All、Any和Some用法与区别
SQLServer中有三个关键字可以修改比较运算符:All、Any和Some,其中Some和Any等价。他们作用于比较运算符和子查询之间,作用类似Exists、not exists、in、notin以及其他逻辑意义,这些语法同样被SQLServer2000支持但是很少看到有人用它们。set nocount on use tempdbgo if (object_id ('t1') is not null)drop table t1create table t1 (n int)inser转载 2022-02-05 18:27:47 · 648 阅读 · 0 评论 -
sql server 数据分析优化实战(一)——SQL语句优化
前言在我们进行数据分析的时候,首要的目标是根据业务逻辑,通过编写SQL代码得到我们想要的结果,这是毋庸置疑的。一般情况下,由于我们分析的数据量比较少,体会不出SQL语句各种写法的性能优劣,对SQL代码的优化往往没那么重要。但是随着数据库中数据的增加,尤其是当一个系统需要对海量的数据进行持续性的分析时,SQL的运行效率就成为系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍甚至更多,可见对于数据分析,不是简转载 2021-12-22 00:57:10 · 1760 阅读 · 0 评论 -
数据分析——SQL窗口函数
“ 窗口函数,是面试数据分析师岗位的高频考点之一。”今天和大家一起聊聊窗口函数。如果还不知道窗口函数的同学,今天的分享一定会给你带来较多收获的。关于SQL,之前的《SQL基础概要》可以先看看。01—窗口函数的应用场景在讲什么是窗口函数之前,先来举几个在写SQL时,经常遇到的一些场景。【场景1】现在数据库中有一张用户交易表order,其中有userid(用户ID)、amount(消费金额)、paytime(支付时间),请写出对应的SQL语句,查出每个用户第一单的消费金额。【场景2】数据库中有一张销售转载 2021-12-21 23:34:35 · 450 阅读 · 0 评论 -
A SELECT statement that assigns a value to a variable must ... (向变量赋值的 SELECT 语句不能与数据检索操作结合使用 )
A SELECT statement that assigns a value to a variable must … (向变量赋值的 SELECT 语句不能与数据检索操作结合使用 )总结一句话,一行语句中,要么都是赋值,要么都是查询,不能既有赋值又有查询[ 错误 ] select @classname=classname,@chargeteacher from classes where classid=@classid[ 错误 ] select @classname=classname,name转载 2021-12-01 23:13:46 · 424 阅读 · 0 评论