SQL Server

sql-索引的作用(超详细)

寵の児 提交于 2020-05-08 14:01:21
( 一 )深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字;同样的,如果查“张”字,那您也会将您的字典翻到最后部分,因为“张”的拼音是“zhang”。也就是说,字典的正文部分本身就是一个目录,您不需要再去查其他目录来找到您需要找的内容。我们把这种正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”。 如果您认识某个字,您可以快速地从自动中查到这个字。但您也可能会遇到您不认识的字,不知道它的发音,这时候,您就不能按照刚才的方法找到您要查的字,而需要去根据“偏旁部首”查到您要找的字,然后根据这个字后的页码直接翻到某页来找到您要找的字。但您结合“部首目录”和“检字表”而查到的字的排序并不是真正的正文的排序方法,比如您查

(5.3.11)sql server升级/大版本升级办法汇总

徘徊边缘 提交于 2020-05-08 13:54:41
一、选择SQL Server升级方法 升级SQL Server的方法归结为几个业务目标:最短的停机时间、最少的花费、最小的风险。 这几个目标通常是无法兼具的,以下每种方法都有利弊,因此根据业务情况选择正确的升级方法非常重要。 1. 业界最常用的升级或迁移SQL Server方法 全备还原 附加和分离 就地升级 大型数据库的差异还原 使用日志传送升级SQL Server 滚动升级(停机时间最短) 2. SQL Server升级 vs 迁移 首先区别一下SQL Server中的迁移和升级术语,有时这些术语会被互换使用,但它们确实有一些不同之处。 1) 升级SQL Server意味着 只升级Edition,例如从SQL Server 2014标准版(SE)升级到SQL Server 2014企业版(EE)。 只升级Version,例如从SQL Server 2012(EE)升级到SQL Server 2016(EE)。 升级Edition和Version。例如从SQL Server 2012(SE)升级到SQL Server 2017(EE)。 Service Pack(SP)和累积更新(CU)的安装相当于小版本升级。 2) 迁移可能包括也可能不包括SQL Server的升级,但这意味着将数据库从一个实例移动到另一个实例。 例如更换SQL Server的物理机或操作系统 例如一个SQL

sql server2008中的策略

吃可爱长大的小学妹 提交于 2020-05-08 13:54:23
策略管理是SQL Server 2008中的一个新特性,用于管理数据库实例、数据库以及数据库对象的各种属性。策略管理在SSMS的对象资源管理器数据库实例下的“管理”节点下,如图: 从图中可以看到,策略管理中包含三个节点:策略、条件、方面。 方面就是策略要应用的对象,包括:服务器、表、触发器、视图、存储过程……这些方面对象都是系统定义好了的,仅供瞻仰不可更改。双击具体的某一个方面可以查看该方面的属性,在定义条件时即可对这些属性进行判断,如图为存储过程方面的属性。 条件就是一个布尔表达式判断策略是否为真。 策略就是在条件为假的情况下要执行的操作,即评估模式。策略中的评估模式有4种:按需、按计划、更改时记录和更改时禁止。对于这4种模式,官方给出如下定义: 按需 。当用户直接指定这种模式时,它可对策略进行评估。 更改时: 禁止 。这种自动模式使用 DDL 触发器来防止违反策略。 更改时: 仅记录 。当发生相关更改并违反日志策略时,这种自动模式使用事件通知对策略进行评估。 按计划 。这种自动模式使用 SQL Server 代理作业定期对策略进行评估。此模式记录违反策略的情况。 其中按需是手动操作的,其他三个则可以自动完成。按计划是使用SQL Server代理来定时检查策略,另外两个是在更改时由DDL触发器触发。 其他的概念我不用多说,大家可以看联机丛书,这里就举个例子来说明策略管理的使用。

sql server开启change tracking

我的梦境 提交于 2020-05-08 11:02:32
第一步: 1、对库级别操作 ALTER DATABASE 数据库名 SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 2 DAYS,AUTO_CLEANUP = ON) 2、查看是否生效 SELECT DB_NAME(database_id) DataBaseName,is_auto_cleanup_on,retention_period,retention_period_units_desc FROM sys.change_tracking_databases 第二步: 1、对表级别操作 --对表启用更改跟踪 ALTER TABLE [dbo].[Department] ENABLE CHANGE_TRACKING WITH (TRACK_COLUMNS_UPDATED = ON) --批量执行开启dbo下表级别change tracking (如果已开启会自动跳过) begin declare @name varchar(500) declare @sql varchar(500) declare ct_cur cursor for select '['+schema_name(a.schema_id)+']'+'.'+'['+a.name+']' from sys.objects a join sys.objects b on a

消息 4900,级别 16,状态 2,第 1 行 对表 'XX.XXX' 执行 ALTER TABLE SWITCH 语句失败。对于已启用更改跟踪的表,不可能切换其分区。请先禁用...

非 Y 不嫁゛ 提交于 2020-05-08 11:02:12
问题描述: 今天处理切换分区数据的时候出现了这个错误: 消息 4900,级别 16,状态 2,第 1 行 对表 'XX.XXX' 执行 ALTER TABLE SWITCH 语句失败。对于已启用更改跟踪的表,不可能切换其分区。请先禁用更改跟踪,再使用 ALTER TABLE SWITCH。 显示开启了跟踪需要先关闭才能切换分区 解决方案: 1.为数据库或表禁用更改跟踪 必须首先为所有启用了更改跟踪的表禁用更改跟踪,然后才能将数据库的更改跟踪设为 OFF。 若要确定数据库中哪些表启用了更改跟踪,请使用 sys.change_tracking_tables 目录视图。 当数据库中没有用于跟踪更改的表时,便可以禁用数据库的更改跟踪。 下面的示例显示如何使用 ALTER DATABASE 对数据库禁用更改跟踪。 ALTER DATABASE 库名 SET CHANGE_TRACKING = OFF 下面的示例显示了如何使用 ALTER TABLE 对表禁用更改跟踪。 ALTER TABLE 表名 DISABLE CHANGE_TRACKING; 2.对数据库启用更改跟踪 您必须先在数据库级别启用更改跟踪,然后才能使用更改跟踪。 下面的示例显示了如何使用 ALTER DATABASE 来启用更改跟踪。 ALTER DATABASE 库名 SET CHANGE_TRACKING = ON

Windows Server2012 R2中安装SQL Server2008

半腔热情 提交于 2020-05-08 11:01:52
入手一台Windows Server2012云服务器,搭建一下服务环境,选用SQL Server2008 直奔主题,下好安装镜像后,直接双击 选择运行程序而不获取帮助 如图: 进入安装中心后选择 安装 再选择全新安装 同样选择运行程序而不获取帮助 选择后如图: 程序会检测一下系统,没警告等大问题就可以点确定 输入产品秘钥,也可以选择试用版本;试用版本简直不能忍,我直接上秘钥,关于秘钥我会在最下面给出一个方案 接受条款,下一步 点安装即可 软件又检测一遍,没有警告就可以点下一步 选择第一项即可 你可以按自己的需求选择功能项,我在这里点了全选 配置文件目录我选择了默认 重要的事情做三遍,依旧是没有警告就可以点击下一步 实例名也就是安装在Windows服务里的名字,一般默认就行 实例的目录选默认,下一步 看一下磁盘空间够不够,足够了,下一步 服务账户:我为了方便管理选择使用相同账户 出现两个选择,我选择System(System的权限比NetWork Service的权限高) 一般情况就选择System 启动类型我就选择手动啦 后面的排序规则默认即可 为了方便必要时的远程连接,一般选择身份验证的混合模式 两次密码要设计的复杂一些,安全 下面选择添加当前用户 数据目录:按自己需求改(我选默认了) FILESTREAM:默认就行 下一步 添加当前用户 数据目录:按自己的需要(我仍然默认)

数据库SQLserver(课本)

最后都变了- 提交于 2020-05-08 10:58:32
一、SQL server的部署 1、数据库的基本概念 数据库通常是一个由行和列组成的二维表 数据表中的行通常叫做记录或元祖 数据表中的列通常叫做字段或属性 2、主键和外键 主键:定义主键可以保证数据的完整性 外键:一个关系数据库通常包含多个表,通过外键,可以将这些表连接 3、数据库的完整性 实体完整性规则:主键不为空 域完整性规则:指定某一数据对某一个列是否有效或确定是否允许空值 引用完整性规则:如果两个表互相关联,那么引用完整规则要求不允许引用不存在的元祖 用户定义完整性规则:针对某一数据的约束条件 4、安装:可看:https://www.cnblogs.com/-xuan/p/9998103.html 5、启动数据库 服务(win + R,services.msc,)-->右击SQL server(MSSQLSERVER),开启 SQL server配置管理器(安装完成后点击桌面左下角,选择Microsoft SQL server 2016中打开),SQL服务-->SQL server(MSSQLSERVER) 使用SSMS启动或者停止 6、注册服务器(方便日后管理):打开SSMS连接后,右击实例,注册即可 7、在SQL server中,数据库分为两种 系统数据库: master 数据库:记录系统级别的信息 model 数据库:用作实力上创建所有数据库的模板 msdb数据库

sql server2008中的FILESTREAM

我的梦境 提交于 2020-05-08 10:10:52
FILESTREAM简介 FILESTREAM是SQL Server 2008中的一个新特性,允许以独立文件的形式存放大对象数据,而不是以往一样将所有数据都保存到数据文件中。以往在对业务系统的文件进行管理时有两种方法,一种是将文件保存到服务器文件系统中,数据库中只保存了该文件的路径,在使用该文件时应用程序连接到服务器读取文件;另一种是将文件以varbinary(max)或image数据类型保存到SQL Server中。而SQL Server 2008提供了FILESTREAM,结合这两种方式的优点。 FILESTREAM使SQL Server数据库引擎和NTFS文件系统成为了一个整体。Transact-SQL语句可以插入、更新、查询、搜索和备份FILESTREAM数据。FILESTREAM使用NT系统缓存来缓存文件数据。这有助于减少FILESTREAM数据可能对数据库引擎性能产生的任何影响。由于没有使用SQL Server缓冲池,因此该内存可用于查询处理。 在SQL Server中,BLOB可以是将数据存储在表中的标准varbinary(max)数据,也可以是将数据存储在文件系统中的FILESTREAM varbinary(max)对象。数据的大小和应用情况决定您应该使用数据库存储还是文件系统存储。如果满足以下条件,则应考虑使用FILESTREAM: 所存储的对象平均大于1MB。

SQL Server+Java——数据库实验1.0(2)

狂风中的少年 提交于 2020-05-08 10:10:04
一周的时间已经过去了,我的数据库实验1.0有了第二次进度说明。这一周完成的最令我开心的事就是把Java和SQL Server真正地连了起来,使得Java代码操作能够直接对数据库进行操作。这也是最令我脑阔疼的过程。 具体操作详见 myeclipse连接sql server2008r2数据库 MyEclipse如何连接SQL SERVER 2012? 两篇博客都可以。 具体操作并不复杂,我之所以说脑阔疼是因为我开始是用的第二篇博客的方法,前期过程很顺利,就到 使用 telnet命令测试1433端口是否打开 时出问题了,是滴,打不开😅,在之后又百度了很多打开方式,都不行,但是,我跳过了这步,后面的步骤居然都能顺利进行,而且,连接成功了!!!我。。。 本来想就这么继续下去,可转念一想,万一用的时候再出啥毛病,我可就哭都没地方哭去了。所以就又找了一篇博客,也就是第一篇博客的方法。按照着步骤操作,发现还要用tomcat,没办法,载呗。配置环境。接下来,最迷的事来了,大家也知道一些,tomcat配置环境首先Java环境要正常,因为我上周也用myeclipse做过实验来着,想着没问题,然而,理想很丰满,现实却告诉我,Java环境有点问题。。。 大家基本上都学过Java,也知道,Java环境配置是最恶心的,所以你们就能想像到我当时十分爆炸的心态。我很迷,我之前明明还用过,咋就出问题了嘞?迷归迷

2018第一发:记一次【Advanced Installer】打包之旅

 ̄綄美尐妖づ 提交于 2020-05-08 02:48:35
一、前言 2017年最后几天,你们都高高兴兴的跨年,博主还在加班制作.net安装包。因为年前要出来第一版的安装包,所以博主是加班加点啊。本来想用VS自带的制作工具,不过用过的人都知道,真是非常好(tong)用(ku),各种包需要单独下载不说,界面也不美观,所以决定弃用之。同事推荐用Advanced Installer,不过同事也是很久不用了,记不起来具体用法。所以博主是边摸索边前进,所以不免跳进坑里,为了避免后来人跳进同样的坑里,作文以记之。 好了,不说废话,正文开始! 二、画流程图 俗话说的好,“磨刀不误砍柴工”! 首先强调一点,我们要先弄清楚我们每一步要做什么,这样接下来在制作安装包时才能条理清晰,有条不紊,不容易犯错。 比如我们要判断客户机器上是否安装.net framework3.5及以上版本,是否安装IIS,是否安装SQL Server2005及以上版本数据库等等。 我这个项目的流程图如下: Tips1:开始之前最好先画流程图 三、开始制作 有了流程图,只需按部就班!关于Advanced Installer的基础用法,网上有很多的资料,官网也有帮助文档,这里就不赘述了。由于要用到自定义安装包的过程,需要新建对话框,博主用了企业模板,Advanced Installer的版本是14.5.2,也是最新的版本。 1、选择模板 首先新建模板里面选择Enterprise,并选择语言