
SQL Server 2000/2005/2008
文章平均质量分 69
踏雪无痕
这个作者很懒,什么都没留下…
展开
-
Sqlserver基础资料和性能优化资料合集
可以对监控的选项进行过滤,比如数据库名称、时间参数等这些文件 / 模板 / 编辑模板,可以编辑之前保存的模板。转载 2023-08-25 17:27:28 · 513 阅读 · 0 评论 -
SQL优化:小表驱动大表
而如果sql语句中包含了exists关键字,它优先执行exists左边的语句(即主查询语句)。这个需求中,order表有10000条数据,而user表有100条数据。因为如果sql语句中包含了in关键字,则它会优先执行in里面的子查询语句,然后再执行in外面的语句。假如有order和user两张表,其中order表有10000条数据,而user表有100条数据。不管是用in,还是exists关键字,其核心思想都是用小表驱动大表。小表驱动大表,也就是说用小表的数据集驱动大表的数据集。转载 2023-08-02 10:44:58 · 941 阅读 · 0 评论 -
SQL Server 数据库查询性能优化询(不涉及表结构变动情况)
但建立索引后,并不是每个查询都会使用索引,在使用索引的情况下,索引的使用效率也会有很大的差别。ON是最先执行, WHERE次之,HAVING最后,因为ON是先把不符合条件的记录过滤后才进行统计,它就可以减少中间运算要处理的数据,按理说应该速度是最快 的,WHERE也应该比 HAVING快点的,因为它过滤数据后才进行SUM,在两个表联接时才用ON的,所以在一个表的时候,就剩下WHERE跟HAVING比较了。任何允许使用表达式的地方都可以使用子查询,子查询可以使我们的编程灵活多样,可以用来实现一些特殊的功能。转载 2023-07-29 14:30:38 · 1000 阅读 · 0 评论 -
看懂MSSQL执行计划,分析SQL语句执行情况
(索引就两种,1是聚集索引,2个非聚集索引,聚集索引每张表只能有一个,非聚集索引每张表可以有多个,主键Id就是典型的聚集索引,聚集索引是顺序排列的类似于字典查找拼音a、b、c……(如果有些sql执行很慢可以看一下执行计划是否包含太多“扫描”操作,如果有可以考虑为这些字段建立索引,建立索引切记不要再经常有更新操作的字段上建立,每次更新都会导致重建索引的操作,也会影响性能,0或1这种标识状态的字段因为大部分数据都是一样的建立索引也没有什么作用)[Table Scan] 表扫描(最慢),对表记录逐行进行检查。转载 2023-07-29 13:08:27 · 311 阅读 · 0 评论 -
MSSQL 重建索引(在线重建、控制最大处理器数 、MAXDOP )
索引碎片如何产生,请移步至《转载 2023-06-15 16:49:10 · 1537 阅读 · 0 评论 -
T-SQL查询高级—SQL Server索引中的碎片和填充因子
每一个叶子节点为一页,每页是不可分割的. 而SQL Server向每个页内存储数据的最小单位是表的行(Row).当叶子节点中新插入的行或更新的行使得叶子节点无法容纳当前更新或者插入的行时,分页就产生了.在分页的过程中,就会产生碎片.外部碎片指的是由于分页而产生的碎片.比如,我想在现有的聚集索引中插入一行,这行正好导致现有的页空间无法满足容纳新的行。因为在SQL SERVER中,新的页是随着数据的增长不断产生的,而聚集索引要求行之间连续,所以很多情况下分页后和原来的页在磁盘上并不连续.转载 2023-06-15 16:40:34 · 423 阅读 · 0 评论 -
SQL Server执行计划那些事儿(2)——查找和扫描
然而,通过上面的描述,我们可不能认为,查找就是好的,而扫描就是不好的(因为影响扫描性能的还有并行度),但是在绝大部分情况下,特别是数据量比较大,而返回的结果集比较少时,查找要比扫描有着更好的性能表现,另外也不是所有的扫描都可以优化掉的。表扫描是在整张表上进行,而索引扫描是在整个页级上进行处理的,然而索引查找则是在查找谓词上的一个或者几个页上进行,因此他通常情况下,索引查找会有更少的IO开销。结果:在表扫描的情况下,尽管结果集中,仅一条数据,但是IO开销并没有减少,仍然和返回全部结果集是一样的。转载 2023-06-15 16:23:11 · 177 阅读 · 0 评论 -
SQL Server执行计划那些事儿(1)——哈希、合并、嵌套联接的选择
以后一行一行的对探测输入进行扫描和计算,并为每个探测行计算哈希值,然后进行匹配(当然这里也分多种情况,建立输入大于可用内存时等其他情况)。嵌套循环也称“嵌套迭代”,他将一个联接输入用作外部输入表,将另一个联接输入用作内部输入表。内部循环逐行处理外部输入表,内部循环会针对每个外部行执行,在内部输入表中搜索匹配的行。接下来的文章是记录自己曾经的盲点,同时也透漏了自己的发展历程(可能发展也算不上,只能说是瞎混)。通过上面的介绍,我们也能分析出来(可以根据时间复杂度,和空间复杂度),以上三种联接并没有绝对的优劣。转载 2023-06-15 15:20:45 · 777 阅读 · 0 评论 -
SQL Server执行计划那些事儿(3)——书签查找
当表以堆的形式存储的时候,数据行的物理位置是不会(严谨的说是很少)变动的,正是因为很少变动,所以,可以通过一个地址来唯一确定一行,又因为数据库的每一行一定存储在某一页上,而某一页又一定在某一数据库文件中,所以就可以通过文件号:页号:行号(如:1:22:14,指的就是第1个数据库文件的第22页中的第14行)。书签查找总是伴随着非聚集索引的查找而出现,但并不是所有的非聚集索引都会引起书签查找。在表以堆(不含聚集索引)的形式存储的时候,书签查找为RID查找,当表以树(含聚集索引)的形式存储时,书签查找为键查找。转载 2023-06-15 15:06:43 · 122 阅读 · 0 评论 -
sql中return/break/continue解释
sql中return/break/continue解释2016-07-20 11:12:28一,return:从查询或过程中无条件退出。可在任何时候用于从过程、批处理或语句块中退出。RETURN 之后的语句是不执行的。 1,如果用于存储过程,RETURN 不能返回空值。如果强制返回则:将生成警告消息并返回 0 值。 2,RETURN 语句无条件终止查询、存储过程或批处理。存储过程或批处理中 RETURN 语句后面的语句都不执行。 二,break:退出 WHILE 或 I...转载 2022-05-12 19:19:38 · 4286 阅读 · 0 评论 -
SQL - SQL Server 之WHILE循环的坑
设置重复执行 SQL 语句或语句块的条件。 只要指定的条件为真,就重复执行语句。 可以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行。语法-- Syntax for SQL Server and Azure SQL Database WHILE Boolean_expression { sql_statement | statement_block | BREAK | CONTINUE }参数Boolean_expressi...转载 2022-05-12 19:17:39 · 1927 阅读 · 0 评论 -
sqlserver游标循环跳出循环进入下一个循环
当在游标中执行数据操作的时候,如果存在if判断不符合条件的情况下,需要跳出循环进入下一次循环的时候,可以执行该过程:1 使用break 结束整个循环。2 使用continue 结束当前循环,进入下一循环。注意:使用continue造成死循环,是因为continue后又执行与上次相同的fetch了。解决办法:在continue前加一个fetch next from就可以了。...转载 2022-05-11 19:00:35 · 3558 阅读 · 0 评论 -
SQL中游标的使用
类型: 1.普通游标 只有NEXT操作 2.滚动游标 有多种操作1.普通游标DECLARE @username varchar(20),@UserId varchar(100)DECLARE cursor_name CURSOR FOR --定义游标 SELECT TOP 10 UserId,UserName FROM UserInfo ORDER BY UserId DESCOPEN cursor_name --打开游标FETCH NEXT FROM c.转载 2021-11-16 21:01:46 · 12531 阅读 · 0 评论 -
SQLServer中比较末尾带有空格的字符串遇到的坑
最近发现SQLServer中比较字符串的时候 如果字符串末尾是空格 那么SQLServer会无视那些空格直接进行比较 这和程序中平时的字符串判断逻辑不统一declare @a nvarchar(50);set @a=N'happycat1988' declare @b nvarchar(50);set @b=N'happycat1988 ' if(@a = @b) select 'True' as 直接等号比较else select 'False' as 直接等号比转载 2020-08-06 10:59:43 · 1026 阅读 · 0 评论 -
sql 多行、一行 互转(逗号分割)
原始数据:期望数据:IF OBJECT_ID('temp_20170701','u') IS NOT NULL DROP TABLE temp_20170701 CREATE TABLE temp_20170701 ( ID INT PRIMARY KEY IDENTITY(1,1), NAME NVARCHAR(50), Subjectname NVARCHAR(50), Score INT )INSERT dbo.temp_20170701( Name, s...转载 2020-08-03 15:47:53 · 3079 阅读 · 0 评论 -
SQL Server中的rebuild和reorganize区别,OFFLINE和ONLINE索引重建有什么区别?
两者的区别Rebuildingan index drops and re-creates the index.This removes fragmentation, reclaims disk space by compacting the pages based on the specified or existing fill factor setting, and reorders ...转载 2020-02-15 17:44:25 · 1512 阅读 · 0 评论 -
Sql Server中ALTER INDEX的常用用法解析
alter index在MSDN中是这样解释的:通过禁用、重新生成或重新组织索引,或通过设置索引的相关选项,修改现有的表索引或视图索引(关系索引或 XML 索引)。它的功能很多,特别是对索引的操作。可惜自己对它的深入用法也不是很清楚,仅讲讲我自己常用它来实现的几个功能:1,重建索引2,重组索引3,禁用索引4,启用索引5,禁用约束6,启用约束下面我们来一一讲解上面几个功能的实现一...转载 2020-02-15 16:19:31 · 6053 阅读 · 0 评论 -
Microsoft SQL Server 2008 R2 Enterprise安装指南
之前写过《Microsoft SQL Server 2008 Express 安装指南》,主要用于一般临时性或实验用SQL Server服务器的部署。作为SQL Server的免费版本中最简单的版本,Express版仅提供了最基础的功能。 由于是最基础版本且没有管理功能,所以安装和使用过程也相对简单。本次对正式版本的Microsoft SQL Server 2008 R2 Ente转载 2013-07-13 01:43:27 · 4036 阅读 · 1 评论 -
Windows7与Window2008 64位IIS7上面DCOM配置Excel、Word等
解决办法:1.(适用于.NET) 1).通过webconfig中增加模拟,加入管理员权限, 2).这样就能够启动Application进程,操作EXCEL了,能够新建EXCEL,导出EXCEL,但是还是不能打开服务器端的EXCEL文件2.(以下适用于所有语言) 在组件服务,DOCM设置 Microsoft Excel Application的属性,转载 2013-08-10 11:53:14 · 1154 阅读 · 0 评论 -
查询SQL SERVER版本
select serverproperty('productversion') ,serverproperty('productlevel') ,serverproperty('edition')转载 2014-06-26 22:33:56 · 945 阅读 · 0 评论 -
oracle的nvl和sql server的isnull
ISNULL()函数语法 ISNULL ( check_expression , replacement_value) 参数 check_expression 将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。 replacement_value 在 check_expr转载 2014-07-18 09:27:56 · 1422 阅读 · 0 评论 -
SQL联合查询(内联、左联、右联、全联)的语法
概述: 联合查询效率较高,举例子来说明联合查询:内联inner join 、左联left outer join 、右联right outer join 、全联full outer join 的好处及用法。 联合查询效率较高,以下例子来说明联合查询(内联、左联、右联、全联)的好处:T1表结构(用户名,密码)userid(int)转载 2014-07-18 09:02:48 · 26168 阅读 · 3 评论 -
SqlServer2008端口及防火墙设置:
SqlServer2008端口及防火墙设置:1. 开始程序,sqlserver r2——>配置工具——>配置管理器 SQL Server网络配置——>SQLEXPRESS的协议下的TCP/IP协议,并将其启用。 将IP2中的动态端口去掉,端口改为1433,已启用改为是将本机地址IP4中的动态转载 2014-06-29 10:37:44 · 7010 阅读 · 0 评论 -
Microsoft SQL Server 2005 整合、集成SP3方法
Microsoft SQL Server 2005 SP3 介绍及下载地址:微软发布了SQL Server 2005 SP3的正式版,而这也将是该软件的最后一次升级服务。SQL Server 2005 SP3版本号9.00.4035,作为一个累计升级包集成了此前所有的更新补丁,能全方位提升SQL Server 2005的各种服务等级,适用于企业版、企业评估版、开发者版、标准版、工作组版等所转载 2014-07-20 14:00:44 · 3531 阅读 · 0 评论 -
SQLServer 查询所有表名 + 查询表结构
SQLServer查询某数据库所有表的表名:select name from sysobjects where xtype='U';sqlserver查询某表的表结构:SELECT syscolumns.name,systypes.name,syscolumns.isnullable, syscolumns.length FROM syscolumns, syst转载 2014-07-01 09:33:21 · 5795 阅读 · 0 评论 -
T-SQL智能提示插件SQL Prompt
数据库是大家在项目开发中肯定会用到的,C#项目用的最多的就是微软自家的SQL Server了。不可否认,微软的VisualStudio开发平台很好用,很直观的体现就是智能提示。敲几个字符,相关的信息就列出来了,很方便。如果改成用记事本写一段代码,肯定没人愿意,因为大家已经习惯了智能提示。然而微软在数据库的IDE方面却做得并不理想,直到SQL2008才加入了并不算强大的智能提示。哪有没有好的转载 2014-07-02 20:07:42 · 1430 阅读 · 0 评论 -
经典SQL语句大全
一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind转载 2014-07-02 19:23:49 · 634 阅读 · 0 评论 -
Red Gate系列之三 SQL Server 开发利器 SQL Prompt 5.3.4.1 Edition T-SQL智能感知分析器 完全破解+使用教程
SQL脚本越写越多,总是觉得编写效率太过于低下,这和打字速度无关。在我个人编写SQL脚本时,至少会把SQL的格式排列成易于阅读的,因为其他人会阅读到你的SQL,无论是在程序中或是脚本文件中,良好的排版不仅让人看起来赏心悦目,在和他人之间做交流时也省时省力,不会因为揉成一团的sql去询问Team Member:您能帮我解释一下这么一大段sql是做什么的吗?虽然微软至SQL 2008以上的版本提供转载 2014-07-02 20:09:12 · 1333 阅读 · 0 评论 -
sql server 查询某个表的所有触发器名称
查出所有用到某个表的SQLselect * from sysobjects where xtype='TR' select * from sysobjects where xtype='TR' and parent_obj=object_id('表名')xtype char(2) 对象类型。可以是下列对象类型中的一转载 2014-08-23 14:17:12 · 9894 阅读 · 0 评论 -
SQL Server 2005/2008 触发器的管理和查看
通过可视化操作来管理和查看触发器在Microsoft SQL Server Management Studio中,选中某一数据库的某一张表时,在“对象资源管理器详细”窗口中有“触发器”项。通过“触发器”的右键菜单功能,我们可以新建触发器。如果原来的表中已经存在了触发器,通过双击“触发器”项可以查看到具体的触发器,在此处可以执行 修改、删除等操作。转载 2014-08-23 14:26:52 · 1321 阅读 · 0 评论 -
SQL Server 触发器
触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。Ø 什么是触发器 触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:update、insert、d转载 2014-08-23 14:41:35 · 528 阅读 · 0 评论 -
如何查询数据库中的所有触发器、储存过程、视图、表
select name from sysobjects where xtype='TR' --所有触发器select name from sysobjects where xtype='P' --所有存储过程select name from sysobjects where xtype='V' --所有视图select name from sysobjects where xtype=转载 2014-08-23 14:16:10 · 2492 阅读 · 0 评论 -
Sql 脚本导入EXCEL数据
Sql 脚本导入EXCEL数据Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 delete excel--讀取EXCLE表數SELECT e_mail excel FROM OPENDATASOURCE('Microsoft.Jet.转载 2014-08-29 09:51:38 · 3478 阅读 · 0 评论 -
MS SQL 导入导出 提示 未在本地计算机上注册“Microsoft.ACE.Oledb.12.0”提供程序。(System.Data)
把SQL08换成SQL2012,首次尝试导入数据,提示: 需要下载安装:Microsoft Office Access Database Engine 2007http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDataba转载 2014-08-30 09:44:27 · 5249 阅读 · 0 评论 -
SQL中的循环、for循环、游标
我们使用SQL语句处理数据时,可能会碰到一些需要循环遍历某个表并对其进行相应的操作(添加、修改、删除),这时我们就需要用到咱们在编程中常常用的for或foreach,但是在SQL中写循环往往显得那么吃力,翻遍网上的资料,找不到几个正确的并能执行的循环处理数据的方法,在这里,我来给大家分享一下!要SQL中写类似for循环,我这里使用的是SQL中的游标来实现,当然SQL中也有for loo转载 2014-08-30 10:50:27 · 830 阅读 · 0 评论 -
sql server 2008 不允许保存更改,您所做的更改要求删除并重新创建以下表
启动SQL Server 2008 Management Studio工具菜单----选项----Designers(设计器)----阻止保存要求重新创建表的更改 取消勾选即可。 工具菜单----选项----Designers(设计器)----阻止保存要求重新创建表的更改 取消勾选转载 2014-08-30 09:40:38 · 506 阅读 · 0 评论 -
sql if else 语句
IF ELSE 是最基本的编程语句结构之一几乎每一种编程语言都支持这种结构而它在用于对从数据库返回的数据进行检查是非常有用的TRANSACT-SQL 使用IF ELSE的例子如下语法if (condition)begin(statement block)endelse if (condition)beginstatement block)ende转载 2014-08-30 09:47:18 · 1766 阅读 · 0 评论 -
SQL Server导入导出excel及常见问题
前几天考试系统导入导出学生信息,初次接触导入导出,为sqlserver和excel的数据传递方法之简和MS产品的高效兼容所震惊,但也遇到各种各样问题,在此介绍SQL Server导入导出excel方法及遇到的问题。 SQL Server导出Excel导出步骤想对较少,出现的问题也较少。 1、进入Excel---数据---自其它来源---来自SQL Server。如图转载 2014-08-31 14:44:47 · 16469 阅读 · 0 评论 -
SQL Server判断对象是否存在(整理中...)
sql server 2000/2005 判断表、存储过程、视图、触发器是否存在转载 2014-08-23 14:57:41 · 972 阅读 · 0 评论 -
sql server2005查询分析器显示行号方法
工具栏:工具--选项--文本编辑器---所有语言--右边复选框 行号 打上勾就ok了转载 2015-01-06 14:40:51 · 1313 阅读 · 1 评论