Welcome 微信登录

首页 / 数据库 / SQLServer

SQL Server数据库中的存储过程介绍

SQL Server数据库中的存储过程介绍

什么是存储过程如果你接触过其他的编程语言,那么就好理解了,存储过程就像是方法一样。竟然他是方法那么他就有类似的方法名,方法要传递的变量和返回结果,所以存储过程有存储过程名有存储过程参数也有返回值。存储过程的优点:存储过程的能力大大增强了SQL语言的功能和灵活性。1.可保证数据的安全性和完整性。2.通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。3.通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。4.在运行...
Sql Server中的视图介绍

Sql Server中的视图介绍

一):视图的定义视图是由基于一个或多个表的一个查询所定义的虚拟表,它将查询的具体定义保存起来,视图不包含任何数据。视图在操作上和数据表没有什么区别,但两者的差异是在其本质上的。数据表是实际存储记录的地方,然而视图并不是保存任何记录,它存储的实际上是查询语句。相同的数据表,根据不同用户的不同需求,可以创建不同的视图。二):视图的作用1):筛选表中的行2):防止未经许可的用户访问敏感数据3):降低数据库的复杂程度4):将多个物理数据抽象为一个逻辑数据库三):创...
Sql Server中的事务介绍

Sql Server中的事务介绍

1.什么是事务:事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时事务是做为最小的控制单元来使用的。 他包含的所有数据库操作命令作为一个整体一起向系提交或撤消,这一组数据库操作命令要么都执行,要么都不执行。 事务是一个不可分割的工作逻辑单元2.事务的分类. 按事务的启动与执行方式,可以将事务分为3类: ①显示事务 :也称之为用户定义或用户指定的事务,即可以显式地定义启动和结束的事务。分布式事务属于显示事务 ②自动提交事务:默认事务管理模式。如果...
SQL Server中统计每个表行数的快速方法

SQL Server中统计每个表行数的快速方法

我们都知道用聚合函数count()可以统计表的行数。如果需要统计数据库每个表各自的行数(DBA可能有这种需求),用count()函数就必须为每个表生成一个动态SQL语句并执行,才能得到结果。以前在互联网上看到有一种很好的解决方法,忘记出处了,写下来分享一下。该方法利用了sysindexes 系统表提供的rows字段。rows字段记录了索引的数据级的行数。解决方法的代码如下:复制代码 代码如下:select schema_name(t.schema_id) ...
sql server中Select count(*)和Count(1)的区别和执行方式

sql server中Select count(*)和Count(1)的区别和执行方式

在SQL Server中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的。本文会阐述这三者的作用,关系以及背后的原理。 往常我经常会看到一些所谓的优化建议不使用Count(* )而是使用Count(1),从而可以提升性能,给出的理由是Count( *)会带来全表扫描。而实际上如何写Count并没有区别。 Count(1)和Count(*)实际上的意思是,评估Count()中的表达式是否...
在SQL Server中将数据导出为XML和Json的方法

在SQL Server中将数据导出为XML和Json的方法

有时候需要一次性将SQL Server中的数据导出给其他部门的也许进行关联或分析,这种需求对于SSIS来说当然是非常简单,但很多时候仅仅需要一次性导出这些数据而建立一个SSIS包就显得小题大做,而SQL Server的导入导出工具其中BUG还是蛮多的,最简单的办法是BCP。数据导出为XML 在SQL Server 2005之后提供了一个for xml子句在关系数据库中原生支持XML。通过该命令可以将二维关系结果集转换为XML,通过BCP就可以将数据存为X...
和表值函数连接引发的性能问题分析

和表值函数连接引发的性能问题分析

表值函数 SQL Server中提供了类似其他编程语言的函数,而函数的本质通常是一段代码的封装,并返回值。在SQL Server中,函数除了可以返回简单的数据类型之外(Int、Varchar等),还可以返回一个集合,也就是返回一个表。 而根据是否直接返回集合或是定义后再返回集合,表值函数又分为内联用户定义表值函数和用户定义表值函数(下文统称为表值函数,省去“用户定义”四个字)。内联表值函数 内联表值函数和普通函数并无不同,唯一的区别是返回结果为集合(表),...
SqlServer 2000、2005分页存储过程整理第1/3页

SqlServer 2000、2005分页存储过程整理第1/3页

sql server 2005的分页存储过程分3个版本,一个是没有优化过的,一个是优化过的,最后一个支持join的,sql server 2000的分页存储过程,也可以运行在sql server 2005上,但是性能没有sql server 2005的版本好。在最后 我还附带了一个二分法的分页存储过程,也很好用的说哈~~1.SqlServer 2005:SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE ...
Windows下使用性能监视器监控SqlServer的常见指标

Windows下使用性能监视器监控SqlServer的常见指标

上边文章中提到win的性能监视器是监控数据库性能必备的工具,接下来我就给大家介绍一些常见的监控指标,其实无非就是磁盘,cpu,内存等硬件的运行指标还有数据库自身的像锁啊、用户连接数啊、还有就是根据自身业务决定的需要注意的参数指标。1.SQL Server Buffer: Buffer Cache Hit Ratio 这是一个很重要查看内存是否不足的参数。SQL Server Buffer中的计数器Buffer Cache Hit Ratio用来指出SQL...
SqlServer备份数据库的4种方式介绍

SqlServer备份数据库的4种方式介绍

1.用sqlserver的维护计划在这里我就不给截图演示了,这个比较简单,无非就是通过sqlserver自己的维护计划拖拽出2个一个‘备份数据库"任务和一个‘清除维护"任务。需要注意的点: 1)有备份任务里边选择备份的库尽量选‘所有用户数据库"这项,以免选择了特定数据库备份以后某天添加了新数据库却忘了勾选导致丢备份。 2)选项验证备份集完整性和压缩备份尽量都选上。 3)备份的路径尽量别选磁盘根目录。2.通过脚本+作业的方式备份数据库(非xp_cmds...
检测SqlServer数据库是否能连接的小技巧

检测SqlServer数据库是否能连接的小技巧

有时候可能需要检测下某台机器的服务是不是起来了,或者某台机器的某个库是不是能被连接又不能打开ssms也不想登陆服务器的话就可以用这个方法。1.在桌面上右键创建个文本,然后改后缀名为udl以后保存(1.udl),至于udl是什么各位可以百度下这里就不细说了。注:udl(Universal Data Link)是通用数据连接文件,使用通用数据链接 (UDL) 文件来保存连接字符串。2.打开这个文件以后输入服务器的ip(因为我是本机所以用了实例名)和用户名密码就...
启动sqlserver服务的bat脚本分享

启动sqlserver服务的bat脚本分享

声明下这个脚本不是我写的,忘了是从哪看到的了,在此分享给大家,因为在我的理解中技术就是用来分享的,希望原创作者看到了不要介意。1.创建个文本,将后缀名改成.bat2.将下边语句粘贴进去,然后保存即可复制代码 代码如下:@echo off for /f "skip=3 tokens=4" %%i in ("sc query MSSQLSERVER") do set "zt=%%i" &goto :next:next if /i "%zt%"=="RUNNIN...
新手SqlServer数据库dba需要注意的一些小细节

新手SqlServer数据库dba需要注意的一些小细节

前言:任何的优化和修改都是以业务情况为前提,可能有的写的有误或者不准确的地方,欢迎各位来拍砖。1.在创建db的时候自增长建议设置成按MB(M)增长,步长根据业务量来设置,一般情况建议设置100-200M(见图片),还有就是尽量别改初始大小,这个默认就好。 如果按照数据文件(mdf)按照默认的1m增长,同时db的业务写入比较频繁,那数据库就会频繁的向磁盘请求空间,会造成不必要的io消耗,也会因为申请空间造成资源等待等问题。 如果把日志文件(ldf)按照默...
SQL Server远程定时备份数据库脚本分享

SQL Server远程定时备份数据库脚本分享

经常会有定时备份SQL Server数据库的需要。定时备份到本机的话,还是挺容易的,计划任务就可以完成,但如果是整机挂了,那备份到本机是没意义的,那么就需要来考虑备份到局域网中,其它电脑里。下面就分享一份在网上找了之后,自己再简单整理过的代码,配合 SQL Server 代理中的作业功能,已经稳定运行一个星期了,每小时就备份一次。复制代码 代码如下:-- 创建网络映射(Y是盘符;IP地址后面要带共享文件夹的名称;password是密码,双引号引起;acco...
SQLServer 2012中设置AlwaysOn解决网络抖动导致的提交延迟问题

SQLServer 2012中设置AlwaysOn解决网络抖动导致的提交延迟问题

事件起因:近期有研发反应,某数据库从08切换到12环境后,不定期出现写操作提交延迟的问题;事件分析:在排除了系统资源争用等问题后,初步分析可能由于网络抖动导致同步模式alwayson节点经常出现会话超时等待提交的问题导致。经过排查,扩展事件里发现不定期出现35202错误,这是一条副本连接恢复的消息。由于机房网络环境复杂,数据库服务器和应用服务器混用一个交换机,在业务高峰期时,因上联端口流量打满而导致连接失败的情况屡有发生。既然短期内无法改造网络环境,那就从...
Sql Server中的系统视图详细介绍

Sql Server中的系统视图详细介绍

本来想这个系列写点什么好呢,后来想想大家作为程序员,用的最多的莫过于数据库了,但是事实上很多像我这样工作在一线的码农,对sql都一知半解,别谈优化和对数据库底层的认识了,我也是这样。。。一:那些系统视图1. 系统视图是干什么呢? 从名字上看就知道,系统视图嘛?猜的不错的话,就是存放一些sqlserver系统的一些信息,很好,恭喜你,答对了。2. 都定义在哪呢? 为了让你眼见为实,下面截图看看,从截图中你可以看到,不管是“系统数据库”还是“用户数据库”都...
深入理解Sql Server中的表扫描

深入理解Sql Server中的表扫描

很久以前我们在写sql的时候,最怕的一件事情就是sql莫名奇妙的超级慢,慢的是撸一管子回来,那个小球还在一直转。。。这个着急也只有当事人才明白,后来听说有个什么“评估执行计划“,后来的后来才明白应该避免表扫描。。。一:表扫描1.现象 ”表扫描“听起来很简单,不就是一行一行的扫嘛,你要说”执行计划”的话,我也会玩,为了更可观,我build一个表,再插入三行数据,如下图:上面的Person我是一个索引都没建,然后where一下,看看表扫描是啥样的???果然是...
理解Sql Server中的聚集索引

理解Sql Server中的聚集索引

说到聚集索引,我想每个码农都明白,但是也有很多像我这样的猥程序员,只能用死记硬背来解决这个问题,什么表中只能建一个聚集索引,然后又扯到了目录查找来帮助读者记忆。。。。问题就在这里,我们不是学文科,,,不需要去死记硬背,,,我们需要的就是能看到在眼里面的真实东西。。。。。我们都喜欢聚集索引,因为它能够把无序的堆表记录变成有序,还玩起了B树。。。这样就把复杂度从N降低到了LogMN。。。这样的话逻辑读,物理读就下来了。一:现象1:无索引的情况 还是老规矩,看...
Sql Server中的非聚集索引详细介

Sql Server中的非聚集索引详细介

非聚集索引,这个是大家都非常熟悉的一个东西,有时候我们由于业务原因,sql写的非常复杂,需要join很多张表,然后就泪流满面了。。。这时候就有DBA或者资深的开发给你看这个猥琐的sql,通过执行计划一分析。。。或许就看出了不该有的表扫描。。。万恶之源。。。然后给你在关键的字段加上非聚集索引后。。。才发现提速比阿斯顿马丁还要快。。。那么一个问题来了,为什么非聚集索引能提速这么快。。。怎么做到的???是不是非常的好奇???这篇我们来解开神秘面纱。一:现象 ...
<< 141 142 143 144 145 146 147 148 149 150 >>