SQLServer
文章平均质量分 76
薛定谔的DBA
这个作者很懒,什么都没留下…
展开
-
SQL Server 系统数据库
SQL Server 系统数据库都非常简单且非常小,但数据库重要级别非常高,因为系统数据库是 SQL Server 中最重要的数据库。为什么是“最重要“呢?转载 2024-03-11 20:44:40 · 182 阅读 · 0 评论 -
SSMS 非常有用的一些功能
SQL Server 官方客户端管理工具 SQL Server Management Studio(SSMS),做了非常多且实用的功能,极大方便了使用者对 SQL Server 数据库系统的相关操作和运维。转载 2024-03-11 20:42:05 · 505 阅读 · 0 评论 -
Windows Cluster 投票权问题
在日常运维中,如果你的 Windows Cluster 需要升级、重启、意外宕机、网络中断等,你知道该怎么操作才能保证集群的可用性吗?按什么样的顺序怎样关闭或启动集群节点吗?怎么快速恢复你的集群呢?原创 2023-07-16 10:09:31 · 731 阅读 · 0 评论 -
Windows Cluster 分布式算法
在分布式系统中,都需要解决分布式一致性问题。那么,在Windows集群中,使用了什么算法来保证集群的一致性呢原创 2023-07-16 10:06:57 · 1277 阅读 · 0 评论 -
SQL Server 高可用方案介绍
SQL Server 高可用方案原创 2023-04-23 09:35:30 · 1470 阅读 · 1 评论 -
SQL Server 意向锁
现在,假设我们按聚集索引查询某行或几行数据(如下图),此时相应的行数据将加上共享锁(S),而该行数据所在的页、表,将加上意向共享锁(IS)(排它锁或更新锁同理)。而进程对能对同一个资源同时只能持有一个锁,所有只能释放共享锁(S),再加上排它锁(X),如果直接释放,资源可能被其他进程夺走,这种方法不是好的处理方式。类似地,当进程对表具有共享锁(S)并在该表的行上具有更新锁(U)时会发生共享意向更新(SIU),而当进程对表具有更新锁(U)而对行具有排他锁时会发生更新意向排他(UIX)。意向排他共享 (SIX)原创 2023-04-23 09:30:17 · 673 阅读 · 0 评论 -
SQL Server tempdb 闩锁争用
如果争用仍然存在,则将数据文件的数量进一步增加 4 的倍数,不过一旦达到 32 个文件,就可能没什么效果了。121320 是 8088 的倍数,所以它是一个 PFS 页面,如果不是 PFS 页面,我们也可以识别正在等待的页面是 GAM 还是 SGAM 页面。GAM页面是数据文件中的第 2 页,下一个 GAM 页面放置在第一个 GAM 页面之后的 511230 页(GAM 间隔)。SGAM 页面是数据文件中的第 3 页,下一个 SGAM 页面放置在第一个 SGAM 页面之后的 511230 Page 处。原创 2023-04-23 09:28:42 · 553 阅读 · 0 评论 -
SQL Server 如何安装 OLEDB 驱动
意识到这种情况,Microsoft 发布了 Office 2007 以及随之而来的新版 JET,现在称为 Office Access Connectivity Engine (ACE),它允许与 JET 4.0 及其以前的版本兼容,并支持新的 Access 格式 (. accdb),它为 Access 带来了多项新功能,例如多值字段、安全性和加密改进。但是他们之间有什么变化呢?在 Access 2010 中,ACE 驱动程序获得了对 64 位平台的支持,其核心被认为是 JET 驱动程序的 64 位版本。原创 2023-02-26 23:23:59 · 4024 阅读 · 0 评论 -
SQL Serve 日志体系结构
日志块在 VLF 中有一个 ID,从 1 开始,对于 VLF 中的每个新日志块增量为 1。日志记录在日志块中也有一个 ID,从 1 开始,对于日志块中的每个新日志记录增加 1。因此,事务日志的结构层次结构中的所有三个元素都有一个 ID,它们合并为一个称为日志序列号的三方标识符中,通常简称为LSN。但是,使用这种算法,如果自动增长的大小很小,并且日志文件经历了许多自动增长,它可能会导致大量的小 VLF(称为VLF 碎片),这可能是一个很大的性能问题。这是一个不断增加的标识符,因为 VLF 序列号永远增加。原创 2023-02-12 21:27:37 · 812 阅读 · 0 评论 -
SQL Server Latches(闩锁)
SQL Server 闩锁是一种内部的 SQL Server 机制,用于保护共享内存资源,比如缓冲池中的页面和内存数据结构,以便协调对这些资源的访问并保护它们免受破坏。在执行增长和收缩操作时,SQL Server 获取 FCB、FGCB_ADD_REMOVE 和 FGCB_ALLOC 这类闩锁,以确保对文件控制块的访问,并确保对存储在文件组中的信息同步访问。闩锁争用对于拥有大量 CPU 的系统来说是一种常见的情况,它在相同的内存结构上,多个线程同时尝试获取彼此不兼容的 SQL Server 闩锁的结果。原创 2023-02-05 14:27:46 · 1141 阅读 · 0 评论 -
SQL Server 重建索引与重组索引区别
下一次执行日志备份(BULK_LOGGED 模式或切换到 FULL 模式)时也将包含重建更改的所有范围,因此日志备份的大小与在 FULL 恢复模式下重建索引完成的大小是一样的。因此,索引重组非常节省空间。和往常一样,我推荐Ola Hallengren的免费代码,而不是编写你自己的索引维护解决方案(是的,其他人也做过类似的工作,但我认为Ola的代码是迄今为止最好的、使用最广泛的)。正如你所看到的,在重建和重组之间有相当多的主要区别,但是对于你应该使用哪一个并没有正确的答案——那是你的选择。原创 2023-02-05 14:22:55 · 1840 阅读 · 0 评论 -
SQL Server连接Oracle详细步骤
在SQL Server Management Studio 中操作oracle数据库:1. 配置oracle数据源2.在sqlserver中创建连接服务器查看sqlserver代码如下:EXEC master.dbo.sp_addlinkedserver @server = N'ORCL_LS', @srvproduct=N'oracl原创 2012-10-21 11:36:08 · 6337 阅读 · 0 评论 -
T-SQL查询:sqlserver 行列转换
/*【行转列】*/ CREATE TABLE TB(姓名 VARCHAR(10) , 课程 VARCHAR(10) , 分数 INT) GO INSERT INTO TB VALUES('张三' , '语文' , 74) INSERT INTO TB VALUES('张三' , '数学' , 83) INSERT INTO TB VALUES('张三' , '物理'转载 2012-10-23 22:27:12 · 971 阅读 · 0 评论 -
SQLServer 日期格式(转)
日期格式转换:转载 2012-11-05 10:21:18 · 2318 阅读 · 0 评论 -
sqlserver 建立索引视图各问题!
--我的 tab 表有 60398 条数据,大家可以用自己的任意表测试SELECT * FROM tab GO--新建表MYTABLE,带序号IF object_id(N'[dbo].[MYTABLE]') IS NOT NULL drop table MYTABLESELECT IDENTITY(INT,1,1) ID,* INTO MYTABLE FROM tabGO SE原创 2012-11-10 17:30:42 · 8703 阅读 · 0 评论 -
sqlserver 分区
SQL SERVER 创建表分区步骤1. 创建分区函数2. 创建分区架构3. 创建表分区创建如下数据库文件组的路径-- 1 .创建数据库文件组分区IF EXISTS (SELECT name FROM sys.databases WHERE name = N'PartDB')DROP DATABASE PartDBGOCREATE DA原创 2012-11-11 02:37:29 · 1674 阅读 · 1 评论 -
SQL Server 字符替换
/*sqlserver分组不能以text,ntext,image类型的字段作为分组依据*/ --强制查询使用索引: select id from table_name with(index(索引名)) where num=@num --全文检索(name like '%abc%')(substring(cal_name ,1,3)='abc') select id f原创 2012-11-17 02:09:14 · 6071 阅读 · 0 评论 -
SQL Server清除连接过的服务器名称历史
FROM : http://blog.csdn.net/leamonjxl有朋友问起,如何在SQL Server中清除已经连接过的服务器名称(Server Name)列表?如图:后来经过试验,找到了解决方法:删除X:/Documents and Settings/XXX/Application Data/Microsoft/Microso转载 2012-12-03 22:58:19 · 961 阅读 · 0 评论 -
T-SQL查询:行列转换简单实例
--★转换结果如上图--创建测试标CREATE TABLE [成绩表]( [编号] [int] IDENTITY(1,1) NOT NULL, [姓名] [varchar](50) NULL, [语文] [numeric](5, 2) NULL, [数学] [numeric](5, 2) NULL, [英语] [numeric](5, 2) NULL) ON [PRIMARY原创 2013-01-07 18:11:21 · 3010 阅读 · 0 评论 -
sqlserver 作业调度(作业常用的几个步骤)
--【作业常用的几个步骤】EXEC msdb.dbo.sp_delete_jobEXEC msdb.dbo.sp_add_jobEXEC msdb.dbo.sp_add_jobstepEXEC msdb..sp_add_jobscheduleEXEC msdb.dbo.sp_add_jobserver EXEC msdb.dbo.sp_start_job--删除作业IF E原创 2013-01-09 10:21:34 · 9699 阅读 · 0 评论 -
SQL Server 数据库快照
1. 数据库快照概述(SQL Server)2. 查看数据库快照的稀疏文件大小 (Transact-SQL)3. 创建数据库快照 (Transact-SQL)4. 查看数据库快照 (SQL Server)5. 将数据库恢复到数据库快照6. 删除数据库快照 (Transact-SQL)1. 数据库快照概述(SQL Server)功能概述:数据库快照原创 2013-01-11 12:47:08 · 1816 阅读 · 0 评论 -
SQLServer 常用脚本
-- 表结构查询SELECT 表名 = case when a.colorder=1 then d.name else '' end, 表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end, 字段序号 = a.colorder, 字段名 ...原创 2013-02-05 01:36:02 · 3686 阅读 · 0 评论 -
oracle merge into与sqlserver merge into 比较
merge into:在两个表之间,根据与源表联接的结果,对目标表执行插入、更新或删除操作。Oracle在9i引入了merge into命令,SQL Server 2008也引入merge into。不多说了,实例对比一下吧!oracle merge into:/*drop table a;drop table b;*/create table a (原创 2013-04-05 11:03:34 · 4280 阅读 · 2 评论 -
SqlServer重建索引
--查看一个表的索引信息declare @table_id int set @table_id=object_id('tablename') dbcc showcontig(@table_id) - 扫描密度 [最佳计数:实际计数].......: 69.57% [16:23]从上面命令的执行结果可以看的出来,Best count为16 而Actual Count为原创 2013-06-24 11:02:34 · 1209 阅读 · 0 评论 -
在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题
SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\KK.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 问题:消息 15281,级别 16,状态 1,第 1 行SQL Server 阻止了对组件原创 2013-06-27 12:20:15 · 19598 阅读 · 5 评论 -
'A,B,C'字符串转换为列形式
/*'A,B,C'字符串转换为:ABC*/--【方法一】CREATE FUNCTION dbo.sf_DS_SplitNVarchar ( @strValues nvarchar(4000) ) RETURNS @tblStrList TABLE (id int identity(1,1),value nvarchar(4000)) AS BE原创 2013-08-16 17:48:38 · 1694 阅读 · 0 评论 -
SQLServer 2008 FileStream简单实例
1.打开服务,内置账户为 local system。(其它不行)2.选择选项FileStream,勾选以下。然后重启服务3.打开management studio,右键服务—属性。点击高级,会看到‘文件流’ 中‘文件流访问级别’,下拉选择为‘已启用完全访问’,重启服务4.选择要运用此功能的数据库,右键属性a.选择文件组选项,添加数原创 2013-08-27 13:34:18 · 4017 阅读 · 0 评论 -
sqlserver中返回两个日期间相差几年零几月零几天,DATEDIFF通常不准确
--实际差12月+1天select DATEDIFF(M,'2013-08-31','2014-09-01') as [13],DATEDIFF(D,'2013-08-31','2014-09-01') AS [366],DATEDIFF(D,'2013-08-31','2014-09-01')/30 AS [12],DATEDIFF(D,'2013-08-31','2014-09-01'原创 2013-09-04 12:18:59 · 10785 阅读 · 3 评论 -
SQL Server索引中的碎片和填充因子
简介 在SQL Server中,存储数据的最小单位是页,每一页所能容纳的数据为8060字节.而页的组织方式是通过B树结构(表上没有聚集索引则为堆结构,不在本文讨论之列)如下图: 在聚集索引B树中,只有叶子节点实际存储数据,而其他根节点和中间节点仅仅用于存放查找叶子节点的数据. 每一个叶子节点为一页,每页是不可分割的. 而SQL Serv转载 2013-09-11 22:27:05 · 1696 阅读 · 0 评论 -
SQLServer 从xml 文件中提取节点数据到数据库中
0 1 (240,240) AA 1/2 BPSK 设计 1 2 (240,192) kk 1/2 QPSK 人格 254 1 GG 27648 false DECLARE @idoc intDECLARE @xml xmlSELECT @xml=bulkco原创 2013-10-06 17:21:33 · 6820 阅读 · 1 评论 -
一条sql语句循环插入N条不同记录
SET NOCOUNT ONIF (OBJECT_ID('TB' ) IS NOT NULL ) DROP TABLE TBGO CREATE TABLE TB(ID INT IDENTITY (1,1),NAME VARCHAR(40))GO INSERT INTO TB(NAME) SELECT 'KK'+CONVERT(VARCHAR(5),@@IDENTITY)GO 10原创 2013-10-07 21:57:40 · 9137 阅读 · 1 评论 -
T-SQL查询:WITH AS 递归计算某部门的所有上级机构或下级机构
IF (OBJECT_ID('DEPT') IS NOT NULL) DROP TABLE DEPTCREATE TABLE DEPT(ID INT,PID INT, NAME VARCHAR(20))INSERT INTO DEPT VALUES(1,0,'集团'),(2,1,'公司A'),(3,1,'公司B'),(4,2,'部门A1'),(5,2,'部门A2'),(6,2,原创 2013-10-16 18:01:47 · 5994 阅读 · 1 评论 -
SqlServer 主要监控的性能计数器
监控对象组 对象原创 2014-05-30 11:14:39 · 3815 阅读 · 0 评论 -
T-SQL查询: TOP N [PERCENT] WITH TIES ORDER BY 顺序排序实例
USE tempdbGO-- DROP TABLE #TESTCREATE TABLE #TEST(DEPTNAME VARCHAR(50),AMOUNT INT)INSERT INTO #TEST(DEPTNAME,AMOUNT)VALUES ('销售1部',99), ('销售2部',100), ('销售3部',86), ('销售4部',100), ('销售5部',86)原创 2014-06-30 22:57:54 · 3237 阅读 · 0 评论 -
SQL Server 可更新订阅的发布和订阅的数据库文件迁移
-- SQL Server 可更新订阅的发布和订阅的数据库迁移/*=======================================================================================================*******************************************【发布服务器数据文件迁移】****原创 2014-09-03 13:45:53 · 1510 阅读 · 0 评论 -
SQLServer 在SSMS插入失败却提示成功
今天在处理数据时,wang原创 2014-09-09 20:05:26 · 1383 阅读 · 0 评论 -
SqlServer try catch 捕获不到的一些错误及解决方法
IF (OBJECT_ID('AA','U') IS NOT NULL)DROP TABLE AACREATE TABLE AA(ID INT)SELECT * FROM AA--注:数据库当前只存在表AA,无表#BB和表BB------------------------------------------------------------------------------原创 2014-10-13 13:30:12 · 20332 阅读 · 1 评论 -
队列读取器代理 遇到错误 Row handle is invalid
今天测试在发布中更改表名称,再发布数据库更改后重新发布这个表。但是原来的表在订阅没有删除,不小心插入数据到原表中,队列读取器停止并报错。原创 2014-11-12 16:04:15 · 1169 阅读 · 0 评论 -
SqlServer 并发事务:死锁跟踪(一)简单测试
-- 测试代码-- DROP TABLE TestCREATE TABLE Test( id INT, name VARCHAR(20), info VARCHAR(20),)CREATE CLUSTERED INDEX IX_Test ON DBO.Test(id)CREATE NONCLUSTERED INDEX IX_Test_name ON DBO.Test(name原创 2014-11-25 20:25:46 · 6255 阅读 · 0 评论 -
SqlServer 并发事务(一):事务隔离级别
--查了当前数据库是事务隔离级别DBCC USEROPTIONS【测试一:丢失更新】--事务1begin tran select * from dbo.Test(nolock) where name = 'kk' waitfor delay '00:00:05' update T set info = 'A更改' from Test T(nolock) where name原创 2014-11-26 13:35:08 · 15972 阅读 · 3 评论