SQLSERVER
文章平均质量分 51
mituan1234567
今天比昨天更好明天比今天更好为此不屈不挠地工作勤勤恳恳地经营孜孜不倦地修炼我们人生的目的和价值就是这样确确实实地存在着
展开
-
高可用性、负载均衡的mysql集群解决方案
https://my.oschina.net/liuyuantao/blog/1860806一、为什么需要mysql集群?一个庞大的分布式系统的性能瓶颈中,最脆弱的就是连接。连接有两个,一个是客户端与后端的连接,另一个是后端与数据库的连接。简单如图下两个蓝色框框在客户端与后端中可以利用类似nginx的负载均衡解决(本专题是mysql优化,后面出高并发专题再详细讲解连接1的负载均衡)...转载 2019-12-11 10:54:03 · 370 阅读 · 0 评论 -
DataAdapter 批量更新操作
在以前版本的 ADO.NET 中,使用 DataSet 中的更改来更新数据库时,DataAdapter 的 Update 方法每次更新数据库的一行。因为该方法循环访问指定 DataTable 中的行,所以,会检查每个 DataRow,确定是否已修改。如果该行已修改,将根据该行的 RowState 属性值调用相应的 UpdateCommand、InsertCommand 或 DeleteComman转载 2012-08-30 14:06:12 · 491 阅读 · 0 评论 -
SQLServer行列转换 Pivot UnPivot
PIVOT用于将列值旋转为列名(即行转列),在SQL Server2000可以用聚合函数配合CASE语句实现PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )ASP完整语法:table_sourcePIVOT(聚合函数(value_column)FORpivot_columnIN()) UNPIVOT用于将列明转为列值(转载 2012-08-30 16:18:24 · 611 阅读 · 0 评论 -
详解如何挑战4秒内百万级数据导入SQL Server
对于大数据量的导入,是DBA们经常会碰到的问题,在这里我们讨论的是SQL Server环境下百万级数据量的导入,希望对大家有所帮助。51CTO编辑向您推荐《SQL Server入门到精通》专题。实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方法所耗费的时间。本实验中所用到工具为Visual Studio 2008和SQL S转载 2012-08-30 16:32:50 · 621 阅读 · 0 评论 -
SQL SERVER 2005 通过链接服务器 访问 ORACLE 的快速设定方法
1)在SQL_SERVER 2005服务器上安装Oracle 10g的客户端。假设安装到D:\oracle\目录。如果D:是NTFS分区,需要将ORACLE安装后的目录设为所使用的用户有权可运行、可添加、可删除。2)配置D:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora文件 ( 我并没有配置oracle client这部转载 2012-09-03 13:38:04 · 383 阅读 · 0 评论 -
sqlserver中创建链接服务器图解教程
链接服务器在跨数据库/跨服务器查询时非常有用(比如分布式数据库系统中),本文将以图文方式详细说明如何利用SQL Server Management Studio在图形界面下创建链接服务器。1.展开服务器对象-->链接服务器-->右击"新建链接服务器"注意:必须以数据库管理员身份登录(通常也就是sa帐号)后,才可以创建"链接服务器" 2.输入链接服务器的IP3.设置链转载 2012-09-03 13:09:08 · 629 阅读 · 0 评论 -
SQLServer链接服务器
远程服务器配置可以使得数据库管理员在服务器以外的主机上连接到一个SQL Server实例,以便管理员在没有建立单据连接的情况下在其他的SQL Server实例上执行存储过程等相关操作。在远程服务器配置模式下,客户端所连接发服务器接受客户端的请求,并代表客户端把这个请求发送到远程的数据库服务器。远程服务器执行完毕后,会把执行报告返回给原始的服务器。然后这个原始服务器再把结果传递给客户端。不过在SQL转载 2012-09-03 10:58:23 · 836 阅读 · 0 评论 -
Group by与having理解
注意:select 后的字段,必须要么包含在group by中,要么包含在having 后的聚合函数里。1. GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使用group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面(重要)例如,有如下数据库表:A B 1 abc转载 2012-09-04 11:01:11 · 364 阅读 · 0 评论 -
相关子查询 与非相关子查询
1:标量子查询(相对于多值子查询):只有标量子查询返回的是单个记录或者不返回,就是有效的子查询。Ex1:select OrderId From Orders where EmployeeId=(select EmployeeIdFrom employees where lastNamelike N'Davolio')将’Davolio’改为'D%'时,这个时候子查询中返转载 2012-09-04 11:18:23 · 709 阅读 · 0 评论 -
sql server中如何把一个表结构复制到另一个新表中
// 将A表中的结构复制到B表中,但数据不复制select * into B from A where 1=0// 将A表中的结构和数据全都复制到B表中select * into B from Aselect ID = identity(int,1,1),* into #B from ZhG --如果表ZhG有标识列,就不能用*号,要不然会报服务器: 消息 81转载 2012-09-06 10:37:36 · 7131 阅读 · 0 评论 -
如何将远程SQL Server数据库备份到本地数据库
如何将远程SQL Server数据库备份到本地数据库呢?1、打开sql企业管理器,在本地建立一个新数据库(假设为123),选中123,然后选工具——>SQL 查询分析器,打开查询分析器后按文件——>打开,选择以前备份的数据库SQL脚本,点执行查询。这样就在刚才建立的数据库123里生成了数据表。2、数据导入:右键点123,所有任务——>导入数据,点下一步。在选择数据源窗口,服务器栏写上远转载 2012-09-06 11:24:08 · 2130 阅读 · 0 评论 -
sqlserver重建(rebuild)索引可以提高查询速度
当随着表的数据量不断增长,很多存储的数据进行了不适当的跨页(sqlserver中存储的最小单位是页,页是不不可再分的),会产生很多索引的碎片。这时候需要重建索引来提高查询性能。如何查看索引的使用情况:SELECT index_type_desc,alloc_unit_type_desc,avg_fragmentation_in_percent,fragment_count,avg_fr转载 2012-09-06 14:03:39 · 6614 阅读 · 0 评论 -
sqlserver 中的 substring函数
http://www.cnblogs.com/lingxyd/archive/2009/02/28/1400263.htmlSUBSTRING返回字符、binary、text 或 image 表达式的一部分。有关可与该函数一起使用的有效 Microsoft® SQL Server™ 数据类型的更多信息,请参见数据类型。语法SUBSTRING ( expression ,转载 2012-09-07 10:21:35 · 1151 阅读 · 0 评论 -
SQLServer索引类型和索引导航
SQLServer索引类型和索引导航 虽然在SQLServer中名义上有两种类型的索引(聚集索引和非聚集索引),但实际上,内部来说有3种索引类型,分别是聚集索引,非聚集索引其中包含堆上的非聚集所以,聚集索引上的非聚集索引。 物理数据的存储方式在聚集索引和非聚集索引之间有所不同。SQLServer遍历B树到达最终数据的方式在3种索引类型之间各不相同。 所有SQLServer索引都有转载 2012-09-06 14:50:37 · 1146 阅读 · 0 评论 -
sqlserver 行转列
sqlserver把行转成列在我们编码中是经常遇到的我做一个小例子大家看一下 1 --创建一个表 2 create table PayPhoneMoney 3 ( 4 id int identity(1,1), 5 userName Nvarchar(20), 6 payType nvarchar(20), 7 money decimal转载 2012-09-07 10:16:15 · 1568 阅读 · 0 评论 -
数据库的兼容级别出错,总报错"'PIVOT' 附近有语法错误
今天帮人做一个交叉表,发现一个奇怪的问题select Region,Post_City,CompanyId,CompanyName,[HP耗材放心店] as [HP耗材放心店],[HP产品专卖店] as [HP产品专卖店],[分公司(branch)] as [分公司(branch)] from(selectc.Region,c.Post_City,a.CompanyId,a.C转载 2012-09-10 15:47:44 · 2410 阅读 · 0 评论 -
一种数据库应用中常用的排序算法--两阶段多路归并排序算法
在数据库应用中,常常采用“两阶段多路归并排序算法”来解决对海量数据的排序问题(这里的海量数据是指数据大小远远超过了数据库可用的主存的大小,无法将所有数据一次性的载入主存进行排序)。 该算法包括以下两个阶段: 阶段1:将主存大小的数据片段进行排序,使得每条记录都是一个有序表的一部分,该表正好可以装在可用的主存内。这样就产生了任意个这样的排序子表; 阶段2:归并所有的排序转载 2012-09-10 10:52:48 · 1917 阅读 · 0 评论 -
in 和 exist 区别
select * from Awhere id in(select id from B)以上查询使用了in语句,in()只执行一次,它查出B表中的所有id字段并缓存起来.之后,检查A表的id是否与B表中的id相等,如果相等则将A表的记录加入结果集中,直到遍历完A表的所有记录.它的查询过程类似于以下过程List resultSet=[];Array A=(select * fro转载 2012-09-27 18:01:02 · 347 阅读 · 0 评论 -
查询优化心得
在查询优化时 一般都遵循先投影,再选择,再联结 因为联结所号时间资源是最大的 而INNER JOIN 是: 再联结的同时进行选择, 也就是 扫描表1的每一条记录,然后在表二中筛选满足条件的记录加入最终表, 而用 WHERE 的话 数据库是:扫描表1的每一条记录,同时将表二中所有的记录加入最终表, 然后再根据WHERE 的条件进行筛选,耗时间和 空间资源都比INNER原创 2012-09-27 16:21:35 · 438 阅读 · 0 评论 -
SQL优化--Exists和in的效率哪个高
系统要求进行SQL优化,对效率比较低的SQL进行优化,使其运行效率更高,其中要求对SQL中的部分in/not in修改为exists/not exists 修改方法如下:in的SQL语句SELECT id, category_id, htmlfile, title, convert(varchar(20),begintime,112) as pubtimeFROM tab_oa转载 2012-09-27 17:55:15 · 3583 阅读 · 1 评论 -
列 "Msgtime" 的类型与 UNPIVOT 列表中指定的其他列的类型冲突
http://www.dotblogs.com.tw/ricochen/archive/2011/07/08/31356.aspx前天在使用UNPIVOT所遇到的一個小問題,自己是利用 CAST 轉型來解決,不知道還有沒有更好的方法,有的話在留言告知小弟一下。 :)Table Layout 錯誤的Statement SELECT FielId,Fiel转载 2012-09-13 09:44:59 · 4005 阅读 · 2 评论 -
SQLServer Case具有两种格式:简单Case函数和Case搜索函数
原文出处:http://blog.csdn.net/IBM_hoojo/archive/2010/04/30/5546868.aspx Case具有两种格式。简单Case函数和Case搜索函数。 --简单Case函数CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女'ELSE '其他' END--C转载 2012-09-13 12:27:50 · 810 阅读 · 0 评论 -
sqlserver根据逗号截取字符
http://blog.163.com/greatwall_li/blog/static/1645723952011416212725/declare @sql varchar(5000),@totalLength int,@length int,@tag varchar(20),@currentNumber intset @sql='baidu,google,yahoo,my,d转载 2012-09-14 16:26:16 · 4265 阅读 · 0 评论 -
SQLSERVER数据库将数值类型转换为字符串的问题
http://blog.sina.com.cn/s/blog_4b4761bb0100x0oj.html今天在把一些数据导入到SQLServer的时候遇到有个列被导入成float类型,而我实际需要的是varchar类型,所以要进行类型转换,转换时遇到了一点问题,所以写这篇博客记录一下。SQLServer中的数值类型分为两种,一种是精确的数值类型,具体的数据类型有:bit、tinyi转载 2012-09-14 13:24:31 · 2993 阅读 · 0 评论 -
SQLServer中多行多列连接成为单行单列
http://www.yuloo.com/jsjks/jsj-djks/2008-08-07/105674.html原始结构: Column1 Column2 ----------- ---------- 1 A 1 B 2 C 2 D 2 E 3 F 查询效果: Column1 Column2 ---转载 2012-10-08 13:14:54 · 699 阅读 · 0 评论 -
sqlserver多行转一行
http://topic.csdn.net/u/20120705/11/e3c6d860-a46c-475c-808e-859475e9ad45.html?r=79037815--> 测试数据:[test]if object_id('[test]') is not null drop table [test]create table [test]([Id] int,[班级] in转载 2012-10-08 15:27:15 · 723 阅读 · 0 评论 -
SQLSERVER时间函数
http://www.cnblogs.com/vic_lu/archive/2010/12/17/1909135.html一、sql server日期时间函数Sql Server中的日期与时间函数 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如转载 2012-09-18 15:13:25 · 588 阅读 · 0 评论 -
sqlserver 自定义函数随机产生指定范围的随机数
/* --创建视图 create view RandomView as select re=rand() --自定义函数:取得指定范围的随机数 create function RandData( @a int, @b int) returns decimal(38,0) as begin declare @r decimal(38,0转载 2012-09-18 17:15:56 · 1831 阅读 · 0 评论 -
OLAP中的统计分析:切片 切块 钻取 旋转
http://www.tsingsong.com/jforum/posts/list/754.pageOLAP中的统计分析,比我们通常的所说的只计算一下最大最小平均总量这些报表统计要深刻一下,主要有切片和切块 钻取 旋转集中分析统计:1 切片和切块(Slice and Dice)在多维数据结构中,按二维进行切片,按三维进行切块,可得到所需要的数据。如在“贷款银行、贷款质量、时间”三转载 2012-09-24 08:49:32 · 5207 阅读 · 0 评论 -
SQLServer中实现Oracle多列条件in
在Oracle中可以定义多列条件在in查询中,如下:Sql代码 select * from dept d where (d.dname, d.loc) in (select e.ename, e.job from emp e); 但是在SQLServer不支持这样的语法,可以使用另一种方式实现上边语句功能,使用inner join,如下:转载 2012-10-16 11:21:53 · 2313 阅读 · 0 评论 -
sqlserver事务的用法
事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。在sql server+ .net 开发环境下,有两种方法能够完成事务的操作,保持数据库的数据完整性;一个就是用sql存储过程,另一个就是在ADO.NET中一种简单的转载 2012-09-26 11:11:34 · 467 阅读 · 0 评论 -
SQL Server表分区操作详解
你是否在千方百计优化SQL Server 数据库的性能?如果你的数据库中含有大量的表格,把这些表格分区放入独立的文件组可能会让你受益匪浅。SQL Server 2005引入的表分区技术,让用户能够把数据分散存放到不同的物理磁盘中,提高这些磁盘的并行处理性能以优化查询性能。 SQL Server数据库表分区操作过程由三个步骤组成: 1. 创建分区函数 2. 创建分区架构 3.转载 2012-10-17 17:08:44 · 328 阅读 · 0 评论 -
SqlServer中的merge操作
今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起。后来在technet上搜索发现别有洞天,原来是另外一个sql关键字,t-sql的语法还是相当地丰富的。本篇是一篇学习笔记,没有什么新意,这里给出technet上的地址连接供大家参考权威:http://technet.microsoft.com/zh-cn/library/bb5106转载 2012-10-17 17:48:22 · 497 阅读 · 0 评论 -
通往性能优化的天堂-地狱 JOIN方法说明
前言 不管是博客园还是CSDN,看到很多朋友对数据库的理解、认识还是没有突破一个瓶颈,而这个瓶颈往往只是一层窗纸,越过了你将看到一个新世界。 04、05年做项目的时候,用SQL Server 2000,核心表(大部分使用频繁的关键功能每次都要用到)达到了800万数据量,很早以前查过一些相关表,有的达到了3000多万,磁盘使用的光纤盘,100G空间,每周必须备份转移数据,否则10转载 2012-10-18 17:42:46 · 363 阅读 · 0 评论 -
写有效率的SQL查询(IV)
http://www.cnblogs.com/hysoka/articles/2363650.html本文主要介绍写SQL的另外两个误区:1、 存储过程中使用局部变量而不使用参数变量(就是存储过程输入参数)做where条件2、 查询条件中类型不匹配这两种错误都是非常非常容易犯且非常发指的错误,特别是2,太多次见过了。 一、关于存储过程使用局部变量,我们举例说明。转载 2012-10-18 18:05:08 · 367 阅读 · 0 评论 -
写有效率的SQL查询(VI)
http://www.cnblogs.com/hysoka/articles/2363723.html我们先看NestedLoop和MergeJoin的算法(以下为引用,见RicCC的《通往性能优化的天堂-地狱 JOIN方法说明》):==================================NestedLoop: foreach rowA in tableA wh转载 2012-10-18 17:44:36 · 523 阅读 · 0 评论 -
写有效率的SQL查询(I)
大型系统的生产环境,一般情况下,我们评价一条查询是否有效率,更多的是关注逻辑IO(至于为什么,回头补一篇)。我们常说,“要建彪悍的索引”、“要写高效的SQL”,其实最终目的就是在相同结果集情况下,尽可能减少逻辑IO。1.1 where条件的列上都得有统计信息。没统计信息SQLServer就无法估算不同查询计划开销优劣,而只能采用最稳妥的Scan(不管是table scan还是clu转载 2012-10-18 17:48:03 · 322 阅读 · 0 评论 -
写有效率的SQL查询(II)
http://www.cnblogs.com/hysoka/articles/2363639.html上回我们说到评估一条语句执行效率主要看逻辑IO(啥是逻辑IO,啥是物理IO见联机文档),这次我们继续。我们先说说,返回多行结果时,为什么SQLServer有时会选择index seek,有时会选择index scan。以nonclustered index为例说明。像所有的索引转载 2012-10-18 18:00:28 · 349 阅读 · 0 评论 -
写有效率的SQL查询(III)
先说说这些误区。所谓“误区”,有一些是新手很容易犯的错误或者很容易忽略的问题,另外一些,则是像“耗子吃了盐会变成蝙蝠”一样,让我们从小就认为是正确的事情。如下:1、 表上不管用得着用不着,都加个聚集索引。我们知道,表以两种方式组织物理存储:有聚集索引的“聚集表”;没有聚集索引的“堆”。在聚集表中,数据行按照聚集索引的顺序存储(这也是为啥一张表最多只能有一个聚集索引的原因);堆中,数据行的转载 2012-10-18 18:03:45 · 252 阅读 · 0 评论 -
写有效率的SQL查询(V)
http://www.cnblogs.com/hysoka/articles/2363661.html先站在应用程序的角度说说它们的不同。1、 直接拼SQL就像大家了解的那样,直接拼SQL带来了SQL注入攻击,带来了拼时些许的性能损失,但是拼不用添加SqlParameter,会少写很多代码——很多人喜欢直接拼,也许就因为这点。这种做法会把你拼好的SQL原样直接发送到DB服务器去执转载 2012-10-18 18:06:19 · 1174 阅读 · 0 评论