sqlserver

07-SQLServer的系统数据库

我的梦境 提交于 2020-04-24 20:22:28
总结 首先要明确SQLServer的系统数据库一共有5个:Master、Model、Msdb、Tempdb、Resource。 1、Master数据库   (1)master数据库记录了所有系统级别的信息,包括元数据(登录账户)、端点、链接服务器和系统的配置设置。需要注意的是系统对象不在master库中,而在resource库中;   (2)mater数据库还记录了所有其他数据库的存在、数据库的文件的位置;   (3)master数据库不可用,则SQLServer实例就无法启动;   (4)不能给master数据库添加文件或文件组,不能更改master数据库的排序规则,默认是实例的排序规则;   (5)不能删除master数据库,不能删除guest用户;   (6)不能创建触发器,不能启动CDC(数据变更捕获),不能参与数据库镜像,不能设置为只读,不能设置为OFFLINE(脱机); 2、Model数据库   (1)model数据库是一个模板数据库,在create database时,将通过复制model数据库中的内容来创建数据库的第一部分,然后用空页填充新数据库的剩余部分;   (2)model数据库必须存在,model数据库的全部内容都会被复制到新数据库中,例如设置的权限、数据库选项、表、函数、存储过程等等;   (3)model数据库的数据和日志文件默认初始大小为8MB;   

mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享

不羁的心 提交于 2020-04-24 18:06:53
原文: mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享 摘要: 下文讲述清空数据库中所有表信息的方法分享,如下所示: 实验环境:sql server 2008 实现思路: 1.禁用所有约束,外键 2.禁用所有触发器 3.删除表数据 4.开启触发器 5.开启约束 CREATE PROCEDURE proc_deleteDateSql /* 生成清除数据库表数据的脚本方法分享 */ AS EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL' EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL' EXEC sp_MSForEachTable 'delete from ?' EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL' EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL' EXEC sp_MSFOREACHTABLE 'SELECT * FROM ?' GO --生成脚本信息 exec proc_deleteDateSql go drop proc proc_deleteDateSql go

ABP框架(asp.net core 2.X+Vue)模板项目学习之路(二)--切换MySql数据库

岁酱吖の 提交于 2020-04-24 16:23:11
  前言:   大家好,今天给大家带来ABP第二篇的分享,在写这篇分享的时候非常的困难,因为发现ABP的框架越是深入、难度也就越大,而且深刻感觉到自己领域驱动开发知识的欠缺,前段时间买了两本有关于领域驱动知识的数据,一本是领域驱动之父Eric Evans写的《领域驱动设计》、一本是Vaughn Vernon写的《实现领域驱动设计》,就目前而言,看了并没有几张,再次默默的自我检讨3分钟,下面回归正文:   在ABP系统框架中,后台代码分为了几层,以下是层级的注释: MyABPProject.Application:应用服务层,包含各个应用的逻辑 MyABPProject.Core:项目的核心层,在领域驱动分层中,应该属于领域层 MyABPProject.EntityFrameworkCore:基于EntityFrameworkCore的封装,连接数据库,属于仓储基础设施层 MyABPProject.Migrator:数据库迁移工具 MyABPProject.Web.Core:项目的展现层,封装展现层所用到的工具 MyABPProject.Web.Host:项目的动态API接口以及Swagger   今天主要是写下数据库切换的问题,一开始,项目刚刚下载下来的时候,默认使用的是SqlServer数据库,按照上一篇的文章写的那样,数据库还原->运行项目,顺风顺水可以将项目运行起来

SQL中的条件判断语句(case when zhen if,ifnull)用法

痞子三分冷 提交于 2020-04-24 05:34:24
一、case when then 适用于:sqlserver 和mysql case具有两种格式。简单case函数和case搜索函数。这两种方式,可以实现相同的功能。简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式。还有一个需要注重的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。 --简单case函数 case sex when '1' then '男' when '2' then '女’ else '其他' end --case搜索函数 case when sex = '1' then '男' when sex = '2' then '女' else '其他' end --比如说,下面这段sql,你永远无法得到“第二类”这个结果 case when col_1 in ('a','b') then '第一类' when col_1 in ('a') then '第二类' else '其他' end 示例: 如下users表: 上表结果中的"sex"是用代码表示的,希望将代码用中文表示。可在语句中使用case语句: 如果不希望列表中出现"sex"列,语句如下: 将sum与case结合使用,可以实现分段统计。如果现在希望将上表中各种性别的人数进行统计,sql语句如下: 二、IF表达式 仅适用于:MySQL

开源APM系统 HttpReports 在 .Net Core的应用

爷,独闯天下 提交于 2020-04-23 11:27:59
前言 简单说明下,APM全称Application Performance Management应用性能管理,通过各种收集请求数据,同时搭配Dashboard以实现对应用程序性能管理和故障管理的系统化解决方案。 HttpReports 介绍 HttpReports 是针对.Net Core 开发的轻量级APM系统,基于MIT开源协议, 使用HttpReports可以快速搭建.Net Core环境下统计,分析,图表,监控一体化的站点,并且支持多种数据库存储,适应.Net Core WebAPI,MVC,Web项目, 通过引用Nuget构建Dashboard面板,非常适合中小项目使用。 Github地址: https://github.com/SpringLeee/HttpReports 感兴趣的同学欢迎 Github Star 一波... 在线预览: https://moa.hengyinfs.com 账号: admin 密码 123456 主要功能 接口调用指标分析 多服务节点数据聚合分析 慢请求,错误请求分析 接口调用日志查询 趋势数据分析 (维度:小时,天,月) 多类型预警监控 HTTP调用分析 多数据库支持,集成方便 数据库支持 数据库 Nuget包名称 SqlServer HttpReports.SqlServer MySql HttpReports.MySQL

微服务统计,分析,图表,监控, 分布式追踪一体化的 HttpReports 在 .Net Core 的应用

瘦欲@ 提交于 2020-04-23 05:51:50
前言介绍 HttpReports 是针对.Net Core 开发的轻量级APM系统,基于MIT开源协议, 使用HttpReports可以快速搭建.Net Core环境下统计,分析,图表,监控,分布式追踪一体化的站点, 适应.Net Core WebAPI,MVC,Web项目, 通过引用Nuget构建Dashboard面板,上手简单,适合在微服务架构中使用。 Github地址: https://github.com/SpringLeee/HttpReports 在线预览: https://moa.hengyinfs.com 账号: admin 密码 123456 开源不易,感兴趣的同学欢迎 Github Star 一波... 主要功能 接口调用指标分析 多服务节点数据聚合分析 慢请求,错误请求分析 接口调用日志查询 趋势数据分析 (维度:分钟,小时,天) 多类型预警监控 HTTP调用分析 Grpc调用分析 分布式追踪 多数据库支持,集成方便 数据库支持 数据库 Nuget包名称 SqlServer HttpReports.SqlServer MySql HttpReports.MySQL Oracle HttpReports.Oracle PostgreSQL HttpReports.PostgreSQL HttpReports Dashboard-UI 快速开始 😆 Step1:

从创建索引过程中内存变化来看SQL Server与MySQL的内存淘汰算法

陌路散爱 提交于 2020-04-23 02:03:28
在sqlserver中,几年之前就注意到一个现象:sqlserver中对一个大表创建索引或者rebuild索引的过程中,会引起内存剧烈的动荡,究其原因为何,这种现象到底正不正常,是不是sqlserver内存管理存在缺陷? 另外,最近刚好想到跟MySQL对比一下类似操作引起的内存变化,测试MySQL会不会有类似问题,这里就简单写个代码验证一下这个问题。 数据库是一个非常依赖内存资源的软件系统,通过缓存数据(索引)到内存中,来改善数据物理访问的性能问题, 但是内存往往又不是无限大,或者足以容纳所有相关数据的容量,因此就存在内存页面的淘汰问题。 内存页的淘汰算法,多数是遵循LRU算法,LRU是Least Recently Used的缩写,也即遵循“最近做少使用”的原则,选择最近最久未使用的页面予以淘汰。 这个算法表面上看起来没什么问题,如果有注意观察过在一台相对稳定的服务器上,给大表创建索引的过程,就会发现,整个过程中,buffer pool会发生剧烈的动荡,创建索引的表会迅速侵入内存,挤走内存中原本的缓存。 由于SQLServer作为商业数据库,有关于它的页面淘汰算法的研究较少,仅仅是指导一个大概是遵循LRU的原则的,但是有没有在LRU的基础上进行改进或者优化,就不得而知, 但是SQLServer究竟有没有对该问题做改进或者优化?这里从一个索引的创建来管中窥豹,从侧面验证一下这个算法。

asp.net core 系列 9 三种运行环境和IIS发布

一笑奈何 提交于 2020-04-22 08:43:41
一.在asp.net core中使用多个环境   ASP.NET Core 配置是基于运行时环境, 使用环境变量。ASP.NET Core 在应用启动时读取环境变量ASPNETCORE_ENVIRONMENT,并将该值存储在 IHostingEnvironment.EnvironmentName 中。ASPNETCORE_ENVIRONMENT 可设置为任意值,但框架支持三个值:Development、Staging 和 Production。 如果发布项目未设置 ASPNETCORE_ENVIRONMENT,则默认为 Production (本机vs中项目Properties\launchSettings.json中environmentVariables默认设置的是Development,如果禁用environmentVariables,那默认则为Production)。   下面是Startup. Configure中的默认实现,本机默认配置的是Development环境。 // 如果是Development环境 if (env.IsDevelopment()) { // 当捕获同步和异步系统。管道中的异常实例,并生成HTML错误响应。 app.UseDeveloperExceptionPage(); } else { // 如果不是Development环境

sql server 索引阐述系列三 表的堆组织

亡梦爱人 提交于 2020-04-22 03:23:05
一. 概述   这一节来详细介绍堆组织,通过讲解堆的结构,堆与非聚集索引的关系,堆的应用场景,堆与聚集索引的存储空间占用,堆的页拆分现象,最后堆的使用建议 ,这几个维度来描述堆组织。在sqlserver里,表有二种组织方式,在表上没有创建聚集索引时,表就是堆组织, 有聚集索引就是B树组织。无论哪种组织方式,都可以在表上建多个非聚集索引。表的组织方式也称为HOBT。   之所以称为堆,是因为它的数据不按任何顺序进行组织,而是按分区组对数据进行组织。 在一个堆中。用于保存数据之间的关系的唯一结构是索引分配映射(IAM , index allocation map)的位图页,上一章节中有说过页文件类型。   IAM位图页有指向数据页的指针,如果一个IAM不足以覆盖所有页,将维护一个IAM页的链,在查询数据时,先使用IAM页来遍历分配单元的数据。   堆结构在数据插入没有更改时是有存储顺序的,但一改动如修改删除,结构就会发生变化, 因为没有特定的顺序来维护数据, 所以在新增表中的行时,可以保存到任何数据页上。   Sql server内部使用文件页(PFS, Page Free Space)可用空间页,PFS位图来跟踪数据页中的可用空间, 以便可以快速找到有足够空间能容纳新行的页面,如果没有则分配一个新数据页面。 1.1 堆组织结构    在堆组织中对于一个select查询