sqlserver 拆分】的更多相关文章

drop function dbo.split  删除自定义函数 dbo.split  函数名 函数 dbo.splitcreate function dbo.split(@c varchar(1000),@split varchar(2))returns @t table(name varchar(100))asbegin  while(charindex(@split,@c)<>0)    begin          insert @t(name) values(substring(@c…
有表tb, 如下:id value----------- -----------1 aa,bb2 aaa,bbb,ccc欲按id,分拆value列, 分拆后结果如下:id value----------- --------1 aa1 bb2 aaa2 bbb2 ccc --方法1.使用xml完成SELECT A.id, B.value FROM( SELECT id, [value] = CONVERT(xml,'<root><v>' + REPLACE([value], ',',…
问题描述: 对tab1表实行自动天分区,每天通过sqlserver代理-作业00:00点自动生成分区: 因有次停了数据库服务,sqlserver 代理服务忘记开启,导致当天00:00没有生成新分区: 导致2天的数据存在了一个分区里. 解决方法: 生成新的文件组.文件:给分区函数增加一个边界,即可拆分原来存了2天数据的分区: 拆分代码: alter partition function pFunc_time()           --pFunc_time() 分区函数split range(N'…
将源TXT文件sourceFile_table.txt导入数据库,生成新表dbo.sourceFile_table.新增字段lon.lat.shi.xian 源表dbo.sourceFile_table ​ ​ 源表dbo.GeographyInfo ​ ​ SQL语句: --删除表dbo.sourceFile_table中 双隐号 UPDATE sourceFile_table SET [s_id] = REPLACE([s_id],'"','') , [s_lon_lat] = REPLAC…
一.数据文件格式 SQLSERVER中,数据库的文件后缀有3种:mdf.ndf.ldf. 如下图所示,DW_TEST.mdf.DW_TEST_HIS.ndf.DW_TEST.ldf 属于同一个数据库TEST. 其中 mdf 是主数据文件,每个数据库有且只能有一个:ndf 是次要数据文件 :ldf 是日志文件. 二.如何从主数据文件mdf中拆分出ndf 1,添加新文件组,创建ndf文件 1.1,右键数据库 → 属性 → 文件 → 添加文件 1.2,这边新建一个HIS的文件组,对应的ndf命名为 D…
通过某种特定的条件,将存放在同一个数据库中的数据分散存放到多个数据库上,实现分布存储,通过路由规则路由访问特定的数据库,这样一来每次访问面对的就不是单台服务器了,而是N台服务器,这样就可以降低单台机器的负载压力.提示:sqlserver 2005版本之后,可以友好的支持“表分区”. 垂直(纵向)拆分:是指按功能模块拆分,比如分为订单库.商品库.用户库...这种方式多个数据库之间的表结构不同. 水平(横向)拆分:将同一个表的数据进行分块保存到不同的数据库中,这些数据库中的表结构完全相同.    …
最近遇到一个问题,在SQLServer中,需要根据用户传入的一系列ID值更新对应的记录.有两种方法,一种是将这些ID值使用逗号分隔,拼接成字符串传入,一种是以表变量的方式传入.最开始,我想当然的认为传入表变量要比传入字符串再拆分效果要好,结果发现并没有这么简单. 1.传入字符串再拆分 declare @list varchar(max) set @list='20008,20021,20038,20048,20081,20105,20106,20117,20142,20151,20157,201…
sqlserver字符串拆分(split)方法汇总   --方法0:动态SQL法declare @s varchar(100),@sql varchar(1000)set @s='1,2,3,4,5,6,7,8,9,10'set @sql='select col='''+ replace(@s,',',''' union all select ''')+''''PRINT @sqlexec (@sql) if exists (select * from dbo.sysobjects where…
ALTER FUNCTION [dbo].[f_splitSTR]( ), --待分拆的字符串 ) --数据分隔符 )RETURNS @re TABLE( col varchar(max)) AS BEGIN DECLARE @splitlen int -- 取分隔符的长度, 在分隔符后面加一个字符是为了避免分隔符以空格结束时, 取不到正确的长度 -- 如果待分拆的字符串中存在数据分隔符, 则循环取出每个数据项 BEGIN -- 取第一个数据分隔符前的数据项 )) -- 将已经取出的第一个数据项…
Java..net等开发工具具有split功能,最近在Sqlserver中碰到这个需求. 方法1:动态SQL法 ),) set @string='1,2,3,4,5,6,7,8,9,10' set @sql='select col='''+ replace(@string,',',''' union all select ''')+'''' PRINT @sql exec (@sql) 当然,如果您的字符串是'1*2'或者其他格式,只需要在replace函数中修改符号即可. --方法2:循环截取…
--方法0:动态SQL法declare @s varchar(100),@sql varchar(1000)set @s='1,2,3,4,5,6,7,8,9,10'set @sql='select col='''+ replace(@s,',',''' union all select ''')+''''PRINT @sqlexec (@sql) if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_sp…
CREATE FUNCTION f_splitSTR(@s varchar(8000), --待分拆的字符串@split varchar(10) --数据分隔符)RETURNS @re TABLE(col varchar(100))ASBEGIN DECLARE @splitlen int SET @splitlen=LEN(@split+'a')-2 WHILE CHARINDEX(@split,@s)>0 BEGIN INSERT @re VALUES(LEFT(@s,CHARINDEX(@…
参考地址:http://blog.sina.com.cn/s/blog_b3eabfd30102wldv.html 参考语句: if object_id('[aaa]') is not null drop table [aaa] go create table [aaa]([地区] varchar(4),[内容] varchar(45)) insert [aaa] select '中国','021sp.html|管材|4355;028sp.html|建筑材料|3209' union all se…
--1. 旧的解决方法(sql server 2000)   create table tb(id int,value varchar(30)) insert into tb values(1,'aa,bb') insert into tb values(2,'aaa,bbb,ccc') go   --方法1.使用临时表完成 SELECT TOP 8000 id = IDENTITY(int, 1, 1) INTO # FROM syscolumns a, syscolumns b    SEL…
SQLSERVER聚集索引与非聚集索引的再次研究(上) 上篇主要说聚集索引 下篇的地址:SQLSERVER聚集索引与非聚集索引的再次研究(下) 由于本人还是SQLSERVER菜鸟一枚,加上一些实验的逻辑严谨性, 单写<SQLSERVER聚集索引与非聚集索引的再次研究(上)>就用了12个小时,两篇文章加起来最起码写了20个小时, 本人非常非常用心的努力完成这两篇文章,希望各位看官给点意见o(∩_∩)o 为了搞清楚索引内部工作原理和结构,真是千头万绪,这篇文章只是作为参考,里面的观点不一定正确 有…
SQLSERVER中的假脱机spool 我发现网上对于假脱机的解释都非常零散,究竟假脱机是什么? 这几天在家里研究了一下,收集了很多网上的资料 假脱机是中文的翻译,而英文的名字叫做 spool 在徐老师写的<SQLSERVER企业级平台管理实践>里提到了一下假脱机 在SQLSERVER I/O问题的那一节 在性能监视器里,有一个计数器“worktables/sec” : 每秒创建的工作表数.例如,工作表可用于存储查询假脱机(query spool),LOB变量,XML变量,表变量,游标的临时结…
索引的概念 索引的用途:我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用索引来加快数据处理速度通常是最普遍采用的优化方法. 索引是什么:数据库中的索引类似于一本书的目录,在一本书中使用目录可以快速找到你想要的信息,而不需要读完全书.在数据库中,数据库程序使用索引可以重啊到表中的数据,而不必扫描整个表.书中的目录是一个字词以及各字词所在的页码列表,数据库中的索引是表中的值以及各值存储位置的列表. 索引的利弊:查询执行的大部分开销是I/O,使用索引提高性能的一个主要目标是避免全表扫描,因…
随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载.对于系统的稳定性和扩展性造成了极大的问题. 一.负载均衡技术负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔接在一起,各节点相互协作.共同负载.均衡压力,对客户端来说,整个群集可以视为一台具有超高性能的独立服务器. 1.实现原理实现数据库的负载均衡技术,首先要有一个可以控制连接数据库的控制端.在这里,它截…
怎样查出SQLServer的性能瓶颈 --王成辉翻译整理,转贴请注明出自微软BI开拓者[url]www.windbi.com[/url]--原帖地址 如果你曾经做了很长时间的DBA,那么你会了解到SQLServe的性能调优不是一个精密的科学.即使是,对于为最佳的性能找到最佳的配置也是很困难的.这是因为对于调优来说很少东西是绝对的.例如,一个性能调优可能对某一方面有用,可是却会影响其他的性能. 我曾经做过DBA,在最后7年的日子里,我总结了一套SQLServer调优的清单.当第一次进行SQLSer…
SQL Server内核架构剖析 (转载) 这篇文章在我电脑里好长时间了,今天不小心给翻出来了,觉得写得很不错,因此贴出来共享. 不得不承认的是,一个优秀的软件是一步一步脚踏实地积累起来的,众多优秀的程序员呕心沥血,他们已经不是在简单的写代码,而是在创作一门艺术. 和前面提到的暴雪公司的发展相比他们有一个相同之处,即:他们只做经典.不能说他们集中的全世界最优秀的程序员,而实际上他们集中的是全世界最好的思想,并且付诸实践. 成功不是靠急于求成,而是靠远见.祝Microsoft SQL Server…
解剖SQLSERVER 第九篇  OrcaMDF现在能通过系统DMVs显示元数据(译) http://improve.dk/orcamdf-now-exposes-metadata-through-system-dmvs/ 我坐在去丹麦的火车上,参加在北欧的SQL RALLY会议的最后一站.在演讲的过程中,我根据OrcaMDF 的工作比较含蓄地宣布了OrcaMDF可以读取元数据 现在,我也不妨在这里分享.除了在OrcaMDF中扩大对核心引擎的支持之外,另一个重要的我想要实现的主要功能之一就是显示…
本文转载自桦仔的博客http://www.cnblogs.com/lyhabc/archive/2013/07/16/3194220.html 解释一下SQLSERVER事务日志记录 大家知道在完整恢复模式下,SQLSERVER会记录每个事务所做的操作,这些记录会存储在事务日志里,有些软件会利用事务日志来读取 操作记录恢复数据,例如:log explorer 那么事务日志记录怎麽查看,里面都记录了些什么? 打开可以利用下面SQL语句来查看所在数据库的事务日志记录 1 USE [GPOSDB] -…
 一.索引的概念 索引的用途:我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用索引来加快数据处理速度通常是最普遍采用的优化方法. 索引是什么:数据库中的索引类似于一本书的目录,在一本书中使用目录可以快速找到你想要的信息,而不需要读完全书.在数据库中,数据库程序使用索引可以重啊到表中的数据,而不必扫描整个表.书中的目录是一个字词以及各字词所在的页码列表,数据库中的索引是表中的值以及各值存储位置的列表. 索引的利弊:查询执行的大部分开销是I/O,使用索引提高性能的一个主要目标是避免全表扫…
SQLServer ForXmlPath应用 一:ForXmlPath介绍 forXmlPath    是SQL中的forXml语法的一部分,本文主要讲Path模式 ---SQL中FOR XML子句的四种模式用法 1.AUTO模式:返回数据表为起表名的元素,每一列的值返回为属性: SELECT * FROM tb_test for xml auto 2.RAW模式:返回数据行为元素,每一列的值作为元素的属性: SELECT * FROM tb_test for xml raw('fsf') 3.…
解释一下SQLSERVER事务日志记录 大家知道在完整恢复模式下,SQLSERVER会记录每个事务所做的操作,这些记录会存储在事务日志里,有些软件会利用事务日志来读取 操作记录恢复数据,例如:log explorer 那么事务日志记录怎麽查看,里面都记录了些什么? 打开可以利用下面SQL语句来查看所在数据库的事务日志记录 USE [GPOSDB] --要查看事务日志记录的数据库 GO SELECT * FROM [sys].[fn_dblog](NULL,NULL) 事务日志记录里很多东西可以看…
什么是分区表 一般情况下,我们建立数据库表时,表数据都存放在一个文件里. 但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下由多个cpu进行处理.这样文件的大小随着拆分而减小,还得到硬件系统的加强,自然对我们操作数据是大大有利的. 所以大数据量的数据表,对分区的需要还是必要的,因为它可以提高select效率,还可以对历史数据经行区分存档等.但是数据量少的数据就不要凑这个热闹啦,因为表分区会对数据库产生不必要的…
一.分析阶段一般来说,在系统分析阶段往往有太多需要关注的地方,系统各种功能性.可用性.可靠性.安全性需求往往吸引了我们大部分的注意力,但是,我们必须注意,性能是很重要的非功能性需求,必须根据系统的特点确定其实时性需求.响应时间的需求.硬件的配置等.最好能有各种需求的量化的指标.另一方面,在分析阶段应该根据各种需求区分出系统的类型,大的方面,区分是OLTP(联机事务处理系统)和OLAP(联机分析处理系统).二.设计阶段设计阶段可以说是以后系统性能的关键阶段,在这个阶段,有一个关系到以后几乎所有性能…
原文地址:http://twb.iteye.com/blog/182083 在讲SQLSERVER内部原理的之前,我觉得非常有必要向大家介绍一下SQLSERVER的历史. 让我们站在1999年,看看计算机数据库业界到底处于什么状态. 1999年,Oracle已经于1998年9月发布了Oracle 8i(可能中文版在1999年才来到中国).Oracle 8i支持用JAVA编写存储过程,支持XML,支持Linux. 1999年1月,SQLSERVER7正式发布.SQLSERVER7重构了整个数据库引…
DBCC LOGINFODBCC log('QSSys', TYPE=2)goselect * from sys.fn_dblog(null,null)select [Dirty Pages],[Minimum LSN],[Checkpoint End],[CHKPT Begin DB Version],[Checkpoint Begin],operation,CONTEXT,[Log Record Length],AllocUnitName from fn_dblog(null,null)SE…
由于业务的拆分,数据库拆分为两种作用: 汇总数据库(Master,头节点数据库), 子节点数据库(Compute Node,计算子节点数据库) 这样,就设计到子节点访问头节点数据库中的某张汇总表,这种表的记录一般在几,到几十万行左右,目前适合做跨库查询. 跨库查询目前分为两种: 通过sp_addlinkedserver建立链接服务器 没有链接服务器时,可以使用openrowset或者opendatasource函数 在部署时,需要在SQLSERVER外围应用配置器中启用OpenRowSet和Op…