SQL Server

Sql Server优化---统计信息维护策略

大憨熊 提交于 2020-08-09 08:48:40
本文出处: http://www.cnblogs.com/wy123/p/5748933.html 首先解释一个概念,统计信息是什么:   简单说就是对某些字段数据分布的一种描述,让SQL Server大概知道预期的数据大小,从而指导生成合理执行计划的一种数据库对象 默认情况下统计信息的更新策略:   1,表数据从0行变为1行   2,少于500行的表增加500行或者更多   3,当表中行多于500行时,数据的变化量大于500+20%*表中数据行数 非默认情况下,促使已有统计信息更新的因素(包括但不限于下面三种,别的我也没想起来):   1,rebulid\Reorg index   2,主动update statistics   3,数据库级别的sp_updatestats 开始问题: 对于大表的更新策略是:数据的变化量大于500+20%*表中数据行数 比如对于1000W数据量的表,数据变化要超过500+1000W*20%=2,000,500之后才能触发统计信息的更新, 这一点大多数情况下是无法接受的,为什么?因为该规则下触发统计信息更新的阈值太大,会导致某些统计信息长期无法更新, 由于统计信息导致的执行计划不合理的情况已经在实际业务中屡见不鲜,对于统计信息的更新已经显得非常必要 同时,仅仅靠sqlserver自己更新统计信息,也不一定可靠,因为统计信息中还要一个取样行数的问题

为什么说“多源数据整合”是低代码的必备功能?

爷,独闯天下 提交于 2020-08-09 08:47:54
在中国软件网业协会等机构联合发布的《2020 中国低代码开发平台十大发展趋势》中显示,低代码开发平台的集成能力将更受重视。作为系统集成的重要组成部分和基础能力,多源数据整合被更多开发者和企业IT决策人员视为低代码开发平台产品的必备功能。为什么业界如此看好这个功能?我们得从“数据孤岛”讲起。 “数据孤岛”威胁企业信息化 我们注意到,大多数企业为了快速提升竞争力,在信息化的过程中分批次引入多个来自不同厂商的应用,用来解决当前需求最急迫的应用场景。这种方式虽然“投入少、见效快”,但是因为缺乏整体规划和必要的投入,这些应用往往无法深入集成,最终形成一个个 “孤岛”,即在同一企业内部的不同应用之间相互独立,安全认证和数据均无法互通。“孤岛现象”,特别是位于不同云服务商的“云端孤岛”,给企业的信息系统管理带来了不小的麻烦,甚至因为手动传递和处理数据的存在,还增大了数据完整性风险。 多源数据整合是数据孤岛的克星 诚然,考虑到开发成本和厂商对争夺“企业应用入口”的热衷,大型行业软件和各类互联网工具在短期内无法改变“各自为政”的现状。相比之下,更多企业将希望寄托于定做的个性化应用能够与现有系统集成,甚至承担起“云端孤岛”间传递数据的桥梁。 考虑到技术门槛和开发效率,越来越多的企业采用低代码来开发企业个性化应用。低代码是一种先进的软件开发方式,用这种方式,开发者无需编码即可完成常用功能

使用Docker运行SQL Server

烈酒焚心 提交于 2020-08-09 06:47:27
现在.net core已经跨平台了,大家也都用上了linux用上了docker。跟.net经常配套使用的SQL SERVER以前一直是windows only,但是从SQL Server 2017开始已经支持运行在docker上,也就说现在SQL Serer已经可以运行在linux下了。 下面在Ubuntu 16.4上演示安装并使用SQL Server 2019-CTP3.2 SQL Server in Docker sudo docker pull mcr.microsoft.com/mssql/server:2019-CTP3.2-ubuntu 使用docker pull命令从docker hub拉取sqlserver 2019-ctp3.2的镜像 sudo mkdir /hd2/sqlserver2019_data sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=dev@123," -p 14330:1433 --name sqlserver2019 -v /hd2/sqlserver2019_data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-CTP3.2-ubuntu 使用docker run 命令启动容器,其中要注意的是使用

MYSQL 行转列 Pivot 动态 思路

别说谁变了你拦得住时间么 提交于 2020-08-09 05:52:57
SQL Server行转列、不确定列的行转列 - 农村的码农 - 博客园 https://www.cnblogs.com/kylan/p/10844414.html mysql 行转列 列转行 - 平凡希 - 博客园 https://www.cnblogs.com/xiaoxi/p/7151433.html Pivot Tables in MySQL https://codingsight.com/pivot-tables-in-mysql/ Pivoting in MySQL http://mysql.rjweb.org/doc.php/pivot MySQL - Creating a pivot query | mysql Tutorial https://riptutorial.com/mysql/example/10441/creating-a-pivot-query Mysql - MySQL Pivot Handling Values https://www.howtobuildsoftware.com/index.php/how-do/cnlj/mysql-pivot-mysql-pivot-handling-values How can I return pivot table output in MySQL? - Stack Overflow https:/

asp.net core之NLog

佐手、 提交于 2020-08-09 02:34:28
NuGet添加 NLog.Web.AspNetCore 。 <PackageReference Include="Microsoft.AspNetCore.App" /> 添加配置文件 新建一个文件nlog.config(建议全部小写,linux系统中要注意), 并右键点击其属性,将其“复制到输出目录”设置为“始终复制”。文件内容如下 <?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true"> <targets> <target xsi:type="File" name="allfile" keepFileOpen="false" encoding="utf-8" fileName="${basedir}/logs/${shortdate}-${level}.log" layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format

案例解析丨金蝶K/3 Wise接入华为云RDS数据库SQL Server

江枫思渺然 提交于 2020-08-08 23:59:07
1. 简介 企业或用户将数据中心部署在线下,采用独立软件提供商(Independent Software Vendor)软件进行管理。线下数据运维成本较高,故障容灾单一化,是目前遇到的瓶颈。采用云上数据库并平滑兼容线下ISV软件管理可以降低企业上云难度,加速企业上云,本文以金蝶K/3 WISE 为例,配合华为云SQL Server 实例快速迁移数据中心。 适用场景说明: a) 支持本地ISV应用迁移上云 b) 支持云上虚拟机中的ISV应用,将数据库远程安装至RDS SQL Server。 2. 案例实现 2.1 云上环境搭建 环境说明: a) 本地环境:Windows Server 2016 标准版 64位 ,已经安装了金蝶K/3 WISE 相关组件,并创建测试账套,数据库实体为AIS20200415112523,数据库用户为sa。 b) 云上环境: 华为云SQL Server Microsoft SQL Server 2016 Enterprise Edition 单机实例 4核16GB ,字符集尽量保持和线下一致(线下字符集区分大小写可能会有影响)。 华为云弹性云服务器 Windows Server 2016 标准版 64位 4核16GB(用于安装金蝶客户端及账套管理)。 备注: 安装金蝶的弹性云服务器需要和RDS实例在同一个地域,且VPC相同

sql server2012中的THROW

我的未来我决定 提交于 2020-08-08 13:07:16
简介 SQL SERVER2012实现了类似C#抛出异常的Throw语句。相比较于SQL Server2005之前使用@@ERROR,和SQL Server2005之后使用RAISERROR()引发异常都是一个不小的进步,下面来看一下Throw的用法。 RAISERROR和THROW比较 在SQL Server2005/2008中,使用RAISERROR和TRY…CATCH语句来抛出异常相比较根据@@ERROR进行判断来讲已经进步了很多。但是使用RAISERROR有一个非常不好的一点是无法返回真正出错的行数。如图1所示。 图1.使用RAISERROR返回错误行数不正确 而如果我们需要具体的错误信息,可能还需要这么写,如图2所示。 图2.错误信息写法比较麻烦 而使用SQL SERVER2012新增的THROW语句,则变得简单很多。并且能正确返回出错的行,对于比较长的T-SQL语句来说,这节省了不少时间,如图3所示。 图3.THROW正确返回出错行和出错信息 我们也可以为THROW语句指定参数来返回自定义错误信息,但不能再标识出正确的错误行,如图4所示。 图4.为THROW语句指定参数 小结 因此使用THROW语句可以带来如下好处 1.更简洁优雅的代码 2.可以正确的标识出出错的行数,对于大量T-SQL来说,这点可以节省不少时间 转自: https://www.cnblogs.com

阿里云新品发布会周刊第55期 丨 神结合!一招玩转K8s和微服务治理

ぃ、小莉子 提交于 2020-08-08 11:19:57
点击订阅新品发布会 新产品、新版本、新技术、新功能、价格调整,评论在下方,下期更新!关注更多新品发布会! 精品直播 第95期:阿里云EDAS 3.0版重磅升级发布会 直播时间:2020年5月27日 15:00-17:00 观看回放 EDAS3.0在微服务治理、K8s集群纳管和监管控一体化、生态集成等基础能力上进行了全面的升级。本次发布会,EDAS资深技术专家和资深产品专家将重磅发布EDAS3.0版本,同时还邀请了安利和云途时代分享EDAS业务实践,讲述数字化转型实战故事。 讲师介绍: 议题1《企业级分布式应用服务EDAS3.0重磅发布》 姬风-阿里云资深产品专家 崭岩-阿里云资深产品专家 先河-阿里云产品专家 议题2《企业微服务架构转型之道》 嘉宾-Gausse Ye 议题3《云途时代数字化转型实践》 嘉宾-许人升 点击下方链接有惊喜: 1、首届云原生编程挑战赛正式开战!立即报名瓜分330000现金奖: https://tianchi.aliyun.com/specials/promotion/cloudnative#problem-definition 2、观看《云原生架构师培训课程》领取新用户折扣: https://yqh.aliyun.com/live/AlibabaCloudNative 热门阅读 1、神结合!一招玩转K8s和微服务治理

执行查询 第一篇:基本概念

假如想象 提交于 2020-08-08 11:14:38
SQL Server 是如何执行查询脚本的呢?首先,应用程序连接到SQL Server引擎, 向SQL Server发送请求。一旦应用程序连接到数据库引擎,SQL Server 创建会话(Session),用于表示客户端和服务器端之间数据交换的状态。其次,SQL Server引擎分配Task来接受查询请求,然后,SQL Server把Workder 绑定到Task,开始分配CPU资源和内存资源来处理Task。最后,通过解析、编译和优化,进入查询引擎,真正开始执行查询请求。下图从高层次上概括了SQL Server执行TSQL脚本的流程: 对于图中的相关组件,先来了解一下其基本的概念和功能,下面的术语都是在SQL Server OS中实现的。 一,Connections 连接,这是在底层协议上实现的实际的物理连接,在客户端向数据库引擎发送请求之前,必须建立应用程序和数据库引擎之间的物理链接,是应用程序和数据库引擎之间联系的物理通道,有三种连接的类型:TCP socket,命名管道(named pipe)和共享内存(shared memory)。相关的DMV:sys.dm_exec_connections。 二,Sessions 会话,当客户端应用程序连到SQL Server时,两端就会建立起一个“会话”用于交换信息。严格来说,会话不是底层的物理连接,是SQL