sqlserver 学习
文章平均质量分 71
baobaojinjin
这个作者很懒,什么都没留下…
展开
-
SQL Server BCP使用小结
SQL Server BCP使用小结用法: bcp {dbtable | query} {in | out | queryout | format} 数据文件 [-m 最大错误数] [-f 格式化文件] [-e 错误文件] [-F 首行] [-L 末行] [-b 批大小] [-n 本机类...原创 2013-11-13 09:30:30 · 84 阅读 · 0 评论 -
游标---
概述 游标是邪恶的! 在关系数据库中,我们对于查询的思考是面向集合的。而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服。 正常面向集合的思维方式是: 而对于游标来说: 这也是为什么游标是邪恶的,它会使开发人员变懒,懒得去想用面向...原创 2015-07-26 09:13:07 · 96 阅读 · 0 评论 -
索引----
在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能。但索引可以在大多数情况下大大提升查询性能,在OLAP中尤其明显.要完全理解索引的概念,需要了解大量原理性的知识,包括B树,堆,数据库页,区,填充因子,碎片,文件组等等一系列相关知识,这些知识写一本小书也不为过。所以本文并不会深入讨论这些主题。 索引是什么 索...原创 2015-07-26 16:40:53 · 87 阅读 · 0 评论 -
sqlserver存储
1M = 16区1区 = 8页1页 = 8KB 1KB = 1024Byte 1个英文字符 = 1Byte1个中文字符 = 2Byte原创 2015-07-29 17:27:00 · 101 阅读 · 0 评论 -
ms sql server缓存清除与内存释放
Sql Server系统内存管理在没有配置内存最大值,很多时候我们会发现运行Sql Server的系统内存往往居高不下。这是由于他对于内存使用的策略是有多少闲置的内存就占用多少,直到内存使用虑达到系统峰值时(预留内存根据系统默认预留使用为准,至少4M),才会清除一些缓存释放少量的内存为新的缓存腾出空间。这些内存一般都是Sql Server运行时候用作缓存的,例如你运行一个select语句, ...原创 2015-08-08 11:07:23 · 340 阅读 · 0 评论 -
SQL Server 文件和文件组
文件和文件组简介 在SQL Server中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已。SQL Server通过管理逻辑上的文件组的方式来管理文件。 SQL Server通过文件组对数据文件进行管理。我们看到的逻辑数据库由一个或者多个文件组构成。 结构图如下: 文件组管理着磁盘上的文件,文件中存放的就是S...原创 2015-08-08 20:24:14 · 144 阅读 · 0 评论 -
插入大量数据时
插入大量数据时,尽量不要使用循环,可以使用CTE,如果要使用循环,也放到一个事务中 这点其实显而易见。SQL Server是隐式事务提交的,所以对于每一个循环中的INSERT,都会作为一个事务提交。这种效率可想而知,但如果将1000条语句放到一个事务中提交,效率无疑会提升不少。 打个比方,去银行存款,是一次存1000效率高,还是存10次100?下面,根据吉日的要求,补个例子,...原创 2015-08-12 14:16:11 · 141 阅读 · 0 评论 -
数据类型优先级 (Transact-SQL)
SQL Server 2014 其他版本 <?XML:NAMESPACE PREFIX = [default] http://www.w3.org/1999/xhtml NS = "http://www.w3.org/1999/xhtml" ?>当两个不同数据类型的表达式用运算符组合后,数据类型优先级规则指定将优先级较低的数...原创 2015-08-13 15:49:12 · 218 阅读 · 0 评论 -
解决SQL Server 阻止了对组件 'Ad Hoc Distributed Queries'
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Qu...原创 2015-08-19 17:35:53 · 489 阅读 · 0 评论 -
在T-SQL语句中访问远程数据库(openrowset/opendatasource/openquery)
1、启用Ad Hoc Distributed Queries在使用openrowset/opendatasource前搜先要启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServer默认是关闭的启用Ad Hoc Distributed Queries的方法SQL Server 阻止了对组件 'Ad Hoc Distributed Queri...原创 2015-08-20 08:47:30 · 157 阅读 · 0 评论 -
SqlServer链接服务器
sqlserver如何创建链接服务器遇到下列问题:线上服务器A,中转服务器B,本地服务器C数据在A上面,想在B上面操作类似 select * from [A].[database].table这样的SQL,不用去链接服务器,直接把处理结果导入B然后生成报表。结果报错如下:消息 7202,级别 11,状态 2,第 1 行在 sys.servers 中找不到服务器 'A'。请验证...原创 2015-08-21 10:41:14 · 224 阅读 · 0 评论 -
SQL Server 链接服务器的安全
一.本文所涉及的内容(Contents)本文所涉及的内容(Contents)背景(Contexts)安全设置(Security Settings)实现效果:用户A能看见能使用,B用户不能看见这个链接服务器;实现效果:用户A能看见能使用,B用户能看见但是没有权限使用;总结参考文献(References)二.背景(Contexts) 当需要用远程服务器...原创 2015-08-21 11:30:14 · 269 阅读 · 0 评论 -
索引的最佳实践(转)
指导方针 要了解跑在数据库上的应用程序/用户 使用索引的主要目的是为了提高跑在数据库上应用程序读取和操作数据的速度,如果你不知道程序主要对数据库进行什么操作,索引优化就无从谈起。 当然,如果你全程参与了程序的设计和开发,那再好不过。但这种情况少之又少,大多数情况都是你直接接手数据库和应用程序,这时你就需要两步走的了解你所接手的东西-通过外部和内部。 外部...原创 2015-08-24 15:09:23 · 297 阅读 · 0 评论 -
sqlserver 断开所有连接
通过sql server management studio对数据进行管理,比如数据库改名等,经常遇到有正在运行的连接,以致无法操作,这时候断掉所有的连接很有必要。代码如下:(会断掉某个库的所有连接,当前的query的连接除外,你可以自己关闭query).代码如下:DECLARE @d VARCHAR(8000) SET @d = ' ' SELECT @d = ...原创 2015-07-22 15:44:57 · 567 阅读 · 0 评论 -
用批处理文件执行SQL脚本
需求:执行bat批处理文件能够自动执行某些已经写好的sql 脚本。步骤:(1) 创建一个批处理文件:打开记事本,创建数据库连接信息(例如,server name,username,password,databasename等)以及要执行的*.sql脚本名称。具体语法参考下 文"osql 实用工具" 。 将文件的扩展名改为.bat 并保存。 示例1: 指定待执行sq...原创 2015-07-15 16:19:07 · 1428 阅读 · 0 评论 -
sqlserver 常用存储过程
sp_refreshview 刷新视图原创 2013-10-01 18:52:25 · 66 阅读 · 0 评论 -
sql server行转列[转]
主要应用case语句来解决行转列的问题行转列问题主要分为两类1)简单的行转列问题:示例表:id sid course result1 2005001 语文 80.02 2005001 数学 90.03 2005001 英语 80.04 2005002 语文 56.05 ...原创 2013-10-21 08:58:46 · 62 阅读 · 0 评论 -
SQL SERVER 2005/2008 中关于架构的理解(一)
SQL SERVER 2005/2008 中关于架构的理解(一) 在一次的实际工作中碰到以下情况,在 SQL SERVER 2008中,新建了一个新用户去访问几张由其他用户创建的表,但是无法进行查询,提示“对象名'CustomEntry' 无效。”。当带上了架构名称之后(如“cus.CustomEntry”),却又能查询到表中的数据了,但是查询语句是已经写死在了应用程序中的...原创 2015-07-01 17:05:55 · 91 阅读 · 0 评论 -
SQL SERVER 2005/2008 中关于架构的理解(二)
架构的作用与示例 用户与架构(schema)分开,让数据库内各对象不再绑在某个用户账号上,可以解决SQL SERVER 2000及以前版本中“用户离开公司"问题,也就是在拥有该对象的用户离开公司,或离开该职务时,不必要大费周章地更改该用户所有的对象属于新的用户所有。另外,也可让 DBA 在安装某个套装软件时,设置该套装软件所用的数据库对象都属于某个特定的架构,容易区别。也就是说,...原创 2015-07-01 17:08:08 · 124 阅读 · 0 评论 -
SQL Server VS Oracle 架构下见真章
仔细读了一把McGraw.Hill.Microsoft.SQL.Server.2008.Administration.for.Oracle.DBAs的第二章,颇有感触。这种形式的书应该多出,通过对比,即可以复习以前掌握的知识,又能快速学到新技术,还能知晓两者之间的差异。来看看Oracle与SQL Server在Architecture下的异同吧。High-Level从High-Level...原创 2015-07-02 08:25:47 · 131 阅读 · 0 评论 -
SQL Server 2008 分区函数和分区表详解
当我们数据量比较大的时候,我们需要将大型表拆分为多个较小的表,则只访问部门数据的查询就可以更快的运行,基本原理就是,因为要扫描的数据变的更小。维护任务(例如,重新生成索引或备份表)也可以更快的运行。我们可以再不通过将表物理放置在多个磁盘驱动器上来拆分表的情况下获取分区。如果将某个表放置在一个物理驱动器上,将相关表放置在另一个驱动器上,则可以提高查询性能,因为当运行涉及表间连接的查询时,多个磁...原创 2015-07-04 11:35:29 · 146 阅读 · 0 评论 -
SQL Sever 2008性能分析之执行计划
SQL Sever 2008性能分析之执行计划一直想找一些关于SQL语句性能调试的权威参考,但是有参考未必就能够做好调试 2的工作。我深信实践中得到的经验是最珍贵的,书本知识只是一个引导。本篇来源于《Inside Microsoft SQL Server 2008》,有经验的高手尽管拍砖把。 这个部分将讲解一些性能分析工具,这些性能分许主要关注在执行计划。 缓存执行计划 ...原创 2015-07-06 15:21:06 · 161 阅读 · 0 评论 -
看懂SqlServer查询计划
对于SQL Server的优化来说,优化查询可能是很常见的事情。由于数据库的优化,本身也是一个涉及面比较的广的话题, 因此本文只谈优化查询时如何看懂SQL Server查询计划。毕竟我对SQL Server的认识有限,如有错误,也恳请您在发现后及时批评指正。首先,打开【SQL Server Management Studio】,输入一个查询语句看看SQL Server是如何显示查询计划的吧。...原创 2015-07-08 09:00:12 · 86 阅读 · 0 评论 -
MSSQL执行计划
--DROP TABLE T_UserInfo------------------------------------------------------建测试表CREATE TABLE T_UserInfo( Userid varchar(20), UserName varchar(20), RegTime datetime, Tel varchar(20),...原创 2015-07-09 23:28:07 · 232 阅读 · 0 评论 -
SQLSERVER分页查询
Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID、YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询每页30条,查询第1500页(即第45001-45030条数据),字段ID聚集索引,YEAR无索引,Sqlserver版本:2008R2第一种方案、最简单、普通的方法: 复制代码 代码...原创 2015-07-11 15:10:35 · 91 阅读 · 0 评论 -
SQL Server 常用分页SQL
今天无聊和朋友讨论分页,发现网上好多都是错的。网上经常查到的那个Top Not in 或者Max 大部分都不实用,很多都忽略了Order和性能问题。为此上网查了查,顺带把2000和2012版本的也补上了。先说说网上常见SQL的错误或者说局限问题12345select top 10 *from table1where id...原创 2015-07-11 16:13:54 · 97 阅读 · 0 评论 -
SqlServer中nvarchar和varchar的区别
1、各自的定义: ► nvarchar(n) : 包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。 ► varchar[(n)]: 长度为 n 个字节的可变长度且非 Unicode 的...原创 2015-07-12 08:58:24 · 311 阅读 · 0 评论 -
SQL Server的Bulk Insert
SQL Server的Bulk Insert语句可以将本地或远程的数据文件批量导入到数据库中,速度非常的快。远程文件必须共享才行,文件路径须使用通用约定(UNC)名称,即"\\服务器名或IP\共享名\路径\文件名"的形式。 * 1. 由于Bulk Insert通常配合格式化文件批量导入数据更方便,所以这里先介绍bcp工具导出格式化文件的方法。bcp是SQL Server提供的命令行实...原创 2015-08-25 10:49:32 · 697 阅读 · 0 评论