自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

三空道人的博客

主要分享个人对SQL Server、MySQL等学习心得和管理经验

  • 博客(78)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 一图看懂 SQL Server 登录名、服务器角色、用户名、数据库角色、架构 之间的关系

在整理权限的时候,总是感觉——登录名、 用户名、架构、角色之间的关系很绕。今天画了一个关系图,总算是把其中的关系理清楚了。登陆名与服务器角色的关系 登录名是连接到数据库引擎某个实例下面的安全主体。登录名能访问一个实例,但是并不代表能访问某个数据库。登录名是指实例的登陆名。 登陆名可以独立存在,单独赋予权限 登录名可以是服务器角色的成员,获得服务器角色的权限集合 ...

2019-11-08 09:54:31 4384 3

原创 克隆 SQL Server 登陆名及权限

在数据库的管理过程中,除了要创建SQL Server登陆账户,也会经常遇到需要克隆账户的情形,如服务器硬件老化,需要更新换代;或者需要SQL Server新版本的功能,将SQL Server更新到更高版本。这些都需要将一个服务器上的数据库转移到另外一个服务器上,像这样的数据库跨服务器的转移,不可避免的涉及到登陆账户的转移(数据库用户转移随着备份的还原直接转移了),转移不仅要保证账户相同,账户密码、...

2019-11-04 09:24:35 492

原创 SQL Server sp_helpdb 改写

在SQL Server 数据库管理中,我们常使用sp_helpdb 来查看数据库的基本信息,如我们要查看test数据库的信息,可以执行下面脚本:EXEC sp_helpdb test查询结果如下:但结果中无论是db_size 还是文件的size,都是分配的空间,我们不能看出数据库使用的空间有多少,未使用空间有多少。这个数据库的使用空间对前文中数据库收缩有很大的用处。在最开始我是通...

2019-10-24 12:32:54 1964

原创 SQL Server 大数据空间管理——数据库数据文件循环收缩

最近在进行数据归档整理,整理完后,需要对数据库进行收缩,释放未使用空间。为方便后期重复使用,将相关脚本进行整理。同时也将之分享给业界朋友,希望在您的管理中给予一些提示或者帮助。写到这里也让我回想起第一次收缩一个数据库时候的糗事,收缩两天没有完成,回滚一天还没有结束,最后直接用爆了所有存储^^。每天积累一点,每天进步一点。本文没有使用 DBCC SHRINKDATABASE进行数据库收缩,而D...

2019-10-22 09:41:10 788

原创 SQL Server 故障转移FCI 实例端口修改

本文所述端口修改,本质是一种替代方案,因为,我还无法找到一个直接修改默认端口1433的方案(在我所测试修改方案中,只要修改掉1433默认端口,FCI 数据库实例会挂机,无法启动)。所谓的替代方案是保留1433默认端口的侦听,新加入一个侦听端口。本文的测试环境是Windows 2012 standard系统,域环境,SQL Server 2016企业版。备份注册表为防止修改操作失误,导致...

2019-10-12 12:29:25 831

原创 SQL Server public 角色权限管理

服务器角色public所有登陆名都属于public服务器角色,登陆名是不能移除public角色的,且public角色是不能删除的。这对于我们来说是相当恐怖的事情,因为权限分配的第一原则即最小权限原则,对于一个不可掌控的权限,我们的心里是非常忐忑的。那么public角色具有哪些权限?属于public角色的成员能做些什么操作?public权限是否可以收回?本文将带你解决这些问题。public ...

2019-09-02 10:39:43 12403 1

原创 替换SQL Server中Windows身份验证登陆名buildin\Administrator

以Administrator账户登陆服务器的人员,均可以以buildin\Administrator登陆数据库,并且拥有sysadmin最大权限。而能够使用Administrator登陆服务器可能包括系统维护人员、网络安全人员、机房管理人员、DBA,甚至于开发人员等。这样就会有非DBA人员意外以最大权限登陆数据库的潜在安全隐患问题,本文将由DBA创建本人独占的Windows身份验证登陆名,禁用或者...

2019-08-21 11:19:23 2395

原创 SQL Server 索引管理——唯一索引和唯一约束的区别

SQLServer索引管理——唯一索引和唯一约束的区别唯一索引保证在索引键列中的值是唯一的唯一约束保证没有重复值被插入到列中,当该列上创建有唯一约束的时候。当列上创建了唯一约束时,对应的会在该列自动创建唯一索引为验证这些差异,我们创建一个测试表,创建完成后,使用sp_helpindex查看表的索引情况CREATE TABLE uniqueTest(id INT N...

2019-07-24 14:37:17 4488 1

原创 SQL Server 的约束

SQLServer的约束SQL Server的约束有五种,分别如下: check default foreignkey primarykey unique 创建方式1. 创建表时创建如下脚本给出创建表是创建约束的样例CREATE TABLE constraintTest( id INT PRIMARY KEY...

2019-07-11 11:31:57 631

原创 SQL Server 索引管理——生成禁用索引删除脚本

SQLServer索引管理——生成禁用索引删除脚本禁用索引确定不再使用后,备份禁用索引,然后使用如下脚本,生成删除索引脚本,删除索引DECLARE @sql VARCHAR(MAX);SELECT @sql=STUFF(( SELECT 'DROP INDEX '+i.name+' ON '+QUOTENAME(s.name,'[')...

2019-06-05 11:39:26 728

原创 SQL Server 索引管理——索引备份

SQL Server 索引管理——索引备份作为一个DBA,做任何操作(尤其是删除、更新等)之前,首先要想到事情是,操作如何还原,对于索引的操作也是如此。前文分别叙述了无用索引删除脚本的生成、以及禁用脚本的生成。对于禁用的索引,只需要将禁用脚本中的disable改为REBUILD即可重建恢复。而禁用脚本,在最终确认无用时,还是要删除掉的,所以对于这类要删除的索引,在删除之前,我们还是要备份其创建...

2019-06-04 13:31:34 1321

原创 SQL Server 索引管理——禁用无用索引

SQL Server 索引管理——禁用无用索引前文中,对于不再使用的索引,直接生成删除的脚本,在文中,也提到了直接删除无用索引存在的风险。为了保险起见,如果我们使用的是SQLServer 2005及以后版本,我们可以使用其新增加的功能:索引禁用。这样如果后期发现禁用掉的索引是需要的,我们就可以及时重建索引,保证数据库的性能,如果通过足够时长的观察,确定索引确实无用,则可以将禁用索引删除...

2019-05-28 13:38:34 4124

原创 SQL Server索引管理——索引碎片管理

SQL Server索引管理——索引碎片管理您需要了解SQL Server基础知识才能将数据库性能保持在最高水平。这些知识也会帮助你准备好面对任何潜在的问题。在处理文件时,您可能会发现没有足够的空闲空间来存储文件中所需的数据。默认情况下,这种情形SQLServer将锁住文件,然后进行扩展(被称为自增长)。所有自增长的事件都存储在SQLServer日志中:SELECT ...

2019-05-05 11:39:44 657

原创 SQL Server索引管理——索引创建建议和经验(四)

SQL Server索引管理——索引创建建议和经验(四)在前文的基础上,本文将阐述一些高级的索引技术。高级索引技术 覆盖索引 索引交叉:使用多个非聚集索引满足单个查询需要的所有列 索引连接: 使用索引交叉和覆盖索引技术避免使用基础表 过滤索引:为在奇异分布或稀疏字段上创建索引,可以在索引上应用过滤,使得仅仅为某些数据创建索引 索引视图:这实现磁...

2019-04-24 15:26:36 1713

原创 SQL Server索引管理——索引创建建议和经验(三)

SQL Server索引管理——索引创建建议和经验(三)非聚集索引非聚集索引不影响数据在表页中的顺序,因为非聚集索引的叶页和表的数据页是独立的。需要行定位符从索引行导航到数据行。行定位器的结构决定于数据是以堆的形式存储还是以聚集索引的形式存储。数据以堆形式存储,RID为行定位器;一个有聚集索引的表,行定位器为聚集索引键。非聚集索引的维护非聚集索引的行定位器继续的使用相同的聚集索引键...

2019-04-18 10:58:59 441

原创 SQL Server索引管理——索引创建建议和经验(二)

SQL Server 索引管理——索引创建建议和经验(二)索引类型前文阐述了创建索引要注意的索引宽度、索引顺序、索引字段的唯一值比例、索引字段的数据类型选择等,本文将重点说明索引类型的选择问题。SQLServer 2012之前主要的索引为行索引,即我们常见的聚集索引和非聚集索引,SQLServer 2012及以后,增加列索引,包括聚集列存储索引和非聚集列存储索引。列索引主要使用在数...

2019-04-09 14:36:47 13954

原创 SQL Server索引管理——索引创建建议和经验

SQLServer索引管理——索引创建建议和经验索引创建的建议 检查WHERE语句和JOIN关联列 使用窄索引 检查列的唯一值(基数) 考虑列的顺序 考虑索引类型(行索引 VS.列索引;聚集索引VS非聚集索引) 如果一个表的数据较少,小于8KB,所有数据在一页上,那么表扫描可能比索引查找更适合使用窄索引你可以使用表中的多列...

2019-04-04 18:06:41 2429

原创 SQL Server 索引优化——重复索引(部分重复)

SQLServer索引优化——重复索引(部分重复)前文给出了查询完全重复索引方法,但更多的情况下,是多个管理员,根据单个或部分查询,创建其各自需要的索引,而没有考虑整体情形,就会出现大量的部分重复索引,这对OLAP来说没有较大的影响,但对于OLTP系统,频繁的数据变更就会造成大量的性能消耗,同时也会增加存储的压力。所以对于这部分的索引的优化也显得非常有重要。我们可以这样理解部分重复索引,即...

2019-03-05 16:00:55 3176

翻译 SQL Server索引优化——重复索引

SQL Server索引优化——重复索引在写完《SQLServer索引优化——无用索引和索引缺失》系列后,就想着写点关于发现重复索引的内容,刚好在Kimberly的博文中发现了这篇,就偷懒了,直接将其翻译过来。一直以来,对重复索引都有许多困惑,我想的最多是如何使用sp_helpindex(或者SSMS)展示索引所包含的内容。索引到底包含什么?索引的架构是怎样的?这些通常都不是我们所看到...

2019-02-20 18:06:00 4198

原创 SQL Server 索引优化——sp_helpindex 改写脚本

SQLServer索引优化——sp_helpindex改写脚本在索引优化中,我们常常用到sp_helpindex帮我们查看一个表的索引情况,如下所示但这些信息很明显不足够我们整体深入的剖析一个表的所有索引,因为索引中有包含列,还有索引筛选,索引页的存储等,为了方便索引分析,改写Kimberly Tripp创建的过程,具体操作如下:第一步:创建sp_ExposeCol...

2019-02-19 14:51:23 3236

原创 SQL Server 删除文件/文件组问题

SQL Server 删除文件/文件组问题在做表分区或其他情形时,经常会遇到移除历史文件、文件组报错的问题,本文将通过实验的方式,发现什么情形会出现删除文件、文件组报错,报错的内容,最终总结删除文件文件组的方式及脚本。一、在文件组上创建空表后删除文件/文件组测试直接上测试脚本USE [master];GOALTER DATABASE [test] ADD FILEGROUP ...

2019-02-14 18:23:04 14293

原创 SQL Server 索引优化——无用索引和索引缺失(三)

SQLServer索引优化 ——无用索引和索引缺失(三)SQL Server 索引优化——无用索引和索引缺失中,我们根据动态视图sys.dm_db_index_usage_stats探测无用索引;SQL Server 索引优化——无用索引和索引缺失(二)中使用动态视图sys.dm_db_missing_index_detail...

2019-01-07 11:26:50 2818

原创 SQL Server 索引优化——无用索引和索引缺失(二)

SQLServer索引优化——无用索引和索引缺失(二)上文中我们分享了如何确定不再使用的索引,本文我们将重点给出动态视图法发现数据库中缺失的索引。对于索引的调整和新建将不在本文阐述范围,后续将陆续分享相关经验。sys.dm_db_missing_index_details缺失索引明细,包括相等列,不等列以及包含列,执行如下脚本,并查看结果USE WideWorldImpor...

2019-01-03 10:56:09 950

原创 SQL Server 索引优化——无用索引和索引缺失

SQLServer索引优化——无用索引和索引缺失我们知道,合理的索引能大幅提升性能,但冗余的索引也会降低数据库性能。随着我们业务的发展,数据库的中的表、表结构、查询的内容都有可能发生变化。这样,有的索引就可能不再使用了,需要删除(因为维护索引即浪费存储,又耗费性能);而有的表则需要修改或者增加索引。本文主要给出快速确定不再使用的索引的查找方式之一,动态视图(DMV)查询。无用索引...

2019-01-02 14:47:22 2976

原创 SQL SERVER 索引优化——移除键查找(书签查找)或RID查找(三)

SQL SERVER索引优化 ——移除键查找(书签查找)或RID查找(三)前面两篇文章主要介绍了键查找的产生,及优化方法,虽有提及RID查找的产生,但没有给出产生的样例。本文将对RID查找的产生补充一个样例。--创建有几个列的表 OneIndexCREATE TABLE OneIndex(ID INT, FirstName VARCHAR(100...

2018-12-27 10:26:14 954

原创 SQL SERVER 索引优化——移除键查找(书签查找)或RID查找(二)

SQL SERVER索引优化 ——移除键查找(书签查找)或RID查找(二)前面我已经写了一篇关于移除键查找的文章。这篇文章作为基础文章的续,请在继续阅读本文之前,先阅读前面的文章。我们阅读了使用覆盖索引移除键查找的文章。覆盖索引是这样的一种索引,其包含了SELECT、JOINS、WHERE条件的所有列。在我们的例子中,我们先创建了聚集索引。-- 创建聚集索引...

2018-12-25 15:47:34 694

原创 SQL SERVER 索引优化——移除键查找(书签查找)或RID查找

SQL SERVER索引优化——移除键查找(书签查找)或RID查找今天,我将分享一个快速移除键查找或RID查找的技巧。让我们首先弄明白什么是键查找或者RID查找。请注意,从SQLServer 2005SP1及以前的版本,键查找被称为书签查找。当查询请求少量数据时,SQLServer优化器将试图使用在查询结果列或包含在WHERE语句中列的非聚集索引,检索数据。如果查询请求...

2018-12-21 16:45:27 4404

原创 SQL Server——查询条件的顺序对查询性能的影响

SQL Server——查询条件的顺序对查询性能的影响经常能看到或听到关于查询条件顺序对查询性能的影响,下面给出了测试,相信看完测试结果,就能获得自己的判断。where productId=1 and tradedate>'2018-05-01'where tradedate>'2018-05-01' and productId=1如果喜欢,可...

2018-12-19 15:05:04 3253

原创 SQL Server 索引优化—— 查询条件中等于、大于或小于条件在索引中的顺序对性能的影响

SQLServer索引优化—— 查询条件中等于、大于或小于条件在索引中的顺序对性能的影响一、准备测试表和数据use testgocreate table tradeDetail( id int identity(1,1) ,productId int ,tradedate datetime ,[description] ...

2018-12-18 18:32:46 12809

原创 SQL Server分区表应用场景

SQL Server分区表应用场景背景: 《SQL Server 大数据管理——表分区》介绍创建分区的基础知识;《SQL Server 自动化管理——分区表自动化管理》介绍如何自动化管理分区;《SQL Server 大数据管理——数据归档(主文件备份)》、《SQL Server 大数据管理——数据归档(段落备份)》介绍了分区在数据归档中的应用。但对什么样的表可以做分区,如何选择分区...

2018-05-01 19:35:57 1453

原创 SQL Server 自动化管理——分区表自动化管理

 SQL Server 自动化管理——分区表自动化管理 背景: 生产库上,交易日志表每天以1000万左右的记录在增长,统计报表基本可以以日报表为统计基础。为兼顾性能和业务的需要,日志表每天做一个分区,并且数据仅保留最近32天,超过32天的数据清除。 一.     解决方案:1.  停机维护时,一次性增加n个分区。优点是在增加分区的时候,不会对性能造成影响;不足的地方是,分区总数有限,SQLServ...

2018-04-30 21:20:29 3566

原创 Percona-xtrabackup——mysql备份还原

 Percona-xtrabackup——mysql备份还原 背景:    前文percona-xtrabackup——mysql备份中使用策略是每天0点进行全备,以后每5分钟在前一次备份的基础上进行一个增量备份,这样还原时最多可能需要还原1个全备、287增量备份。手动一个个去还原效率太低,也容易出错,本文将给出自动还原脚本。一.    还原数据库准备停掉mysql服务$ sudo bin/mys...

2018-04-21 23:08:24 236

原创 Percona-xtrabackup——mysql备份

Percona-xtrabackup——mysql备份一.     备份策略  数据库备份,尤其生产库备份策略需要考虑到如下四点: 数据丢失最少 数据库性能影响最小 硬盘空间使用最少数据库恢复时间最少数据丢失最少,主要是保证在数据库在宕机、硬盘毁坏等不可避免的情况下,能够最大可能的保证数据不丢失;数据库性能影响最小,空间使用最小,就需要考虑全备+增量备份;数据恢复时间不仅要考虑数据库的还原时间,还...

2018-04-21 20:52:45 415

原创 mysql免费热备 percona-xtrabackup安装

背景:系统Ubuntu 版本16.04.4Mysql版本5.7.19使用percona-xtrabackup的原因免费、免费、免费,重要的事情说三遍(性能不比收费工具InnodbHot Backup差)一.    安装直接安装Sudo apt-get install percona-xtrabackup二.    备份测试安装成功了,但是进行备份测试时innobackupex --user=bac...

2018-04-10 11:00:20 409

原创 SQL Server 大数据管理——表分区

SQL Server 大数据管理——表分区背景:在前面两篇博文《SQL Server 大数据管理——数据归档(主文件备份)》、《SQL Server 大数据管理——数据归档(段落备份)》中,表分区在其中起到了主要作用,本文将介绍分区的实现及表分区的相关属性和操作。一. 创建分区文件组/文件--创建分区文件组alter database test add filegr...

2018-03-29 16:31:23 11932 2

原创 SQL Server 大数据管理——数据归档(段落备份)

SQL Server 大数据管理——数据归档(段落备份)背景:在SQL Server 大数据管理——数据归档(主文件备份)一文中,提到的归档方案是将非归档数据移除主文档,把归档数据移入主文档,通过备份主文档的方式对数据进行归档。这种归档的方式需要一次归档数据移动,本文将使用段落还原的方式,解决归档数据移动的问题。一. 主文件数据移动到辅文件在SQL Serv...

2018-03-23 16:26:44 2741

原创 SQL Server 大数据管理——数据归档(主文件备份)

SQL Server 大数据管理——数据归档背景:数据库几百GB,甚至TB级别数据库,历史数据偶尔会用到,不能直接删除,就需要定期归档历史数据。以往在归档历史数据方案:方案1:做全备保存归档数据,删除线上库归档数据方案2:创建一个新库,将归档数据导入到新库,备份保留新库,删除线上库归档数据对于方案1,这样会有较多的不需要或者不能归档的...

2018-03-23 12:03:11 9041

原创 SQL Server 空间管理——表空间

SQL Server 中表使用空间查询一、查询指定表空间使用情况脚本1use WideWorldImportersDWgosp_spaceused Workload二、查询库下默认架构所有表空间使用情况循环对每个表名使用sp_spaceused 即可获取,如脚本2脚本2use WideWorldImportersDWgo--创建临时表,存放表空间使用信息...

2018-03-09 17:36:59 7565

Head first python

Python 的程序开发,详细描述python的基本语法和常用库的用法

2013-10-09

NumPy win32 python2.7

Numerical Python,其对象 ndarray 是一个高效的多维数组,数据容器,基于数组数据集读写的工具,线性代数计算、傅里叶转换和随机数的产生包;连接 C、C++ 和Fortran 代码的接口。

2013-08-30

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除