
sql server
felixfeng
alert("1")
展开
-
sql 锁
<br />--设tb(A,B,C) <br />create table #tb(A varchar(2),B varchar(2),C varchar(2)) <br />insert into #tb <br />select 'a1','b1','c1' <br />union all select 'a2','b2','c2' <br />union all select 'a3','b3','c3' <br /> <br />--1)排转载 2010-09-28 11:09:00 · 302 阅读 · 0 评论 -
SQL Server 中的分区表(四):删除(合并)一个分区
在前面我们介绍过如何创建和使用一个分区表,并举了一个例子,将不同年份的数据放在不同的物理分区表里。具体的分区方式为: 第1个小表:2010-1-1以前的数据(不包含2010-1-1)。 第2个小表:2010-1-1(包含2010-1-1)到2010-12-31之间的数据。 第3个小表:2011-1-1(包含2011-1-1)到2011-12-31之间的数据。转载 2014-05-29 16:45:27 · 1333 阅读 · 0 评论 -
SQL Server 中的分区表(六):将已分区表转换成普通表
我的俄罗斯名叫作“不折腾不舒服斯基”,所以,不将分区表好好折腾一下,我就是不舒服。 在前面,我们介绍过怎么样直接创建一个分区表,也介绍过怎么将一个普通表转换成一个分区表。那么,这两种方式创建的表有什么区别呢?现在,我又最新地创建了两个表: 第一个表名为Sale,这个表使用的是《SQL Server 2005中的分区表(一):什么是分区表?为什么要用分区表?如何创建分区表?》中的转载 2014-05-29 16:46:35 · 748 阅读 · 0 评论 -
SQL Server 中的分区表(三):将普通表转换成分区表
在设计数据库时,经常没有考虑到表分区的问题,往往在数据表承重的负担越来越重时,才会考虑到分区方式,这时,就涉及到如何将普通表转换成分区表的问题了。 那么,如何将一个普通表转换成一个分区表呢?说到底,只要将该表创建一个聚集索引,并在聚集索引上使用分区方案即可。 不过,这回说起来简单,做起来就复杂了一点。还是接着上面的例子,我们先使用以下SQL语句将原有的Sale表删除。转载 2014-05-29 16:44:57 · 1203 阅读 · 1 评论 -
SQL Server 中的分区表(一):什么是分区表?为什么要用分区表?如何创建分区表?
如果你的数据库中某一个表中的数据满足以下几个条件,那么你就要考虑创建分区表了。 1、数据库中某个表中的数据很多。很多是什么概念?一万条?两万条?还是十万条、一百万条?这个,我觉得是仁者见仁、智者见智的问题。当然数据表中的数据多到查询时明显感觉到数据很慢了,那么,你就可以考虑使用分区表了。如果非要我说一个数值的话,我认为是100万条。 2、但是,数据多了并不是创建分区表的惟转载 2014-05-29 16:42:17 · 2004 阅读 · 0 评论 -
SQL Server 中的分区表(五):添加一个分区
所谓天下大事,分久必合,合久必分,对于分区表而言也一样。前面我们介绍过如何删除(合并)分区表中的一个分区,下面我们介绍一下如何为分区表添加一个分区。 为分区表添加一个分区,这种情况是时常会发生的。比如,最初在数据库设计时,只预计了存放3年的数据,可是到了第4天怎么办?这样的话,我们就可以为分区表添加一个分区,让它把新的数据放在新的分区里。再比如,最初设计时,一个分区用于存放一年的数转载 2014-05-29 16:45:58 · 1092 阅读 · 0 评论 -
SQL Server表分区的详细讲解
什么是表分区一般情况下,我们建立数据库表时,表数据都存放在一个文件里。但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下由多个cpu进行处理。这样文件的大小随着拆分而减小,还得到硬件系统的加强,自然对我们操作数据是大大有利的。所以大数据量的数据表,对分区的需要还是必要的,因为它可以提高select效转载 2014-12-05 11:24:14 · 740 阅读 · 0 评论 -
SQL Server执行计划的理解
要理解执行计划,怎么也得先理解,那各种各样的名词吧。鉴于自己还不是很了解。本文打算作为只写懂的,不懂的懂了才写。 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看的。 名词解析: 扫描:逐行遍历数据。 先建立一张表,并给大家看看大概是什么样子的。 CREATE TABLE Person( Id int IDENTI转载 2015-07-10 17:19:24 · 352 阅读 · 0 评论 -
sql链接服务器
exec sp_addlinkedserver 'datacenter','','SQLOLEDB','10.0.0.1'exec sp_addlinkedsrvlogin 'datacenter','false',null,'sa','password'原创 2012-07-16 16:18:12 · 286 阅读 · 0 评论 -
SQL关于apply的两种形式cross apply和outer apply
SQL Server数据库操作中,在2005以上的版本新增加了一个APPLY表运算符的功能。新增的APPLY表运算符把右表表达式应用到左表表达式中的每一行。它不像JOIN那样先计算那个表表达式都可以,APPLY必选先逻辑地计算左表达式。这种计算输入的逻辑顺序允许吧右表达式关联到左表表达式。APPLY有两种形式,一个是OUTER APPLY,一个是CROSS APPLY,区别在于指定OUTER,转载 2015-12-23 10:32:17 · 10663 阅读 · 1 评论 -
sql 查询存储过程、sql执行情况
--某个库中存储过程平均耗时SELECT TOP ( 25 ) p.name AS [SP Name] , qs.total_elapsed_time / qs.execution_count AS [avg_elapsed_time] , qs.total_elapsed_time , qs.execution_coun转载 2016-01-06 14:11:52 · 4115 阅读 · 0 评论 -
数据库维护 查哪些表占用空间大
SET NOCOUNT ON;CREATE TABLE [dbo].#tableinfo(表名 [varchar](500) COLLATE Chinese_PRC_CI_AS NULL,记录数 [int] NULL,预留空间 [varchar](500) COLLATE Chinese_PRC_CI_AS NULL,使用空间 [varchar](500) COLLATE原创 2016-08-05 10:59:21 · 531 阅读 · 0 评论 -
查表是否被锁并解锁
有时候发现某个表的更新一直卡住,怀疑被锁解决方法:1.查是否被锁select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableNamefrom sys.dm_tran_locks where resource_type='OBJECT' and OBJECT_NAME(r原创 2017-11-21 16:03:56 · 2048 阅读 · 0 评论 -
SQL Server 中的分区表(二):如何添加、查询、修改分区表中的数据
在创建完分区表后,可以向分区表中直接插入数据,而不用去管它这些数据放在哪个物理上的数据表中。接上篇文章,我们在创建好的分区表中插入几条数据:<mce:script type="text/javascript" src="http://hi.images.youkuaiyun.com/js/blog/tiny_mce/plugins/syntaxhl/langs/zh.js" mce_src="ht转载 2014-05-29 16:44:22 · 1442 阅读 · 0 评论 -
大数据读写分离实现的例子
当web服务器的每天的访问量超过10万ip时对服务器主机的性能要求就非常高了,而且这些访问量又不是平均分布在24个小时里,往往有一个集中的访问高峰,晚上服务器的访问量又很低甚至是深夜连续好几个小时没访问量! 例如我们平时维护的网站的日平均访问量是30万ip、访问高峰时并发的用户量非常大,数据库主机的压力非常大,虽然我们采取了分库措施,但是有些大表、核心业务表的访问压力又非常大,例如有同时有转载 2013-11-13 09:23:30 · 1267 阅读 · 0 评论 -
SQL Server 2005/2008/2012中应用分布式分区视图
自2000版本起,SQL Server企业版中引入分布式分区视图,允许你为分布在不同的SQL 实例的两个或多个水平分区表创建视图。 简要步骤如下:根据Check约束中定义的一组值把大表分割成更小的一些表。Check约束确保每个小表保存着不能保存在其他表的唯一数据。然后使用Union All创建分布式分区视图,把所有这些小表联结成单独的结果集。 这样对性能的改善是有益的,例如,如果视图根转载 2012-10-23 13:32:04 · 373 阅读 · 0 评论 -
sqlserver中如何实现时间按月,日,小时分组查询
--按照月份统计<br />select count(id) cnt,datepart(mm,time) [Month]<br />from [table]<br />where [time] between '2007/09/08 09:10:43' and '2007/10/09 04:32:37'<br />group by datepart(mm,time)<br />--按照日统计<br />select count(id) cnt,datepart(dd,time) [Day]<br />fro原创 2010-10-20 16:04:00 · 3751 阅读 · 0 评论 -
判断阻塞发生在某张表上
1. 使用sp_lock进行察看,如果 输出信息 locktype 中包含 -blk 字符,说明当前表 table_id 的 page 上的锁对其他进程造成了阻塞<br />2. 通过察看 master..syslocks 系统表<br />例<br />id dbid page type spid class fid context row loid<br />----------- ------ ----------- ------ ------ ----------------------------转载 2010-10-28 17:14:00 · 488 阅读 · 0 评论 -
sql 批量更新分批进行
declare @i int<br />set @i=1<br />while (@i<100)<br />begin<br />set rowcount 500<br />update table set flag=1 where flag!=1<br />waitfor delay '00:00:1' <br />set @i=@i+1<br />end<br />原创 2010-10-28 17:15:00 · 1763 阅读 · 0 评论 -
bcp命令详解
<br />参数<br />database_name<br /><br />指定的表或视图所在数据库的名称。如果未指定,则为用户默认数据库。<br /><br />owner<br /><br />表或视图所有者的名称。如果执行大容量复制操作的用户拥有指定的表或视图,则owner是可选的。如果没有指定owner并且执行大容量复制操作的用户不拥有指定的表或视图,则Microsoft? SQL Server? 2000将返回错误信息并取消大容量复制操作。<br /><br />table_name<br />转载 2011-03-04 15:07:00 · 2239 阅读 · 0 评论 -
SSIS包
<br />使用SQL Server Business Intelligence Development Studio创建SSIS包<br /> <br />可做成bat执行:<br />"C:/Program Files/Microsoft SQL Server/100/DTS/Binn/dtexec.exe" /f "F:/package.dtsx"原创 2011-02-14 14:52:00 · 3119 阅读 · 0 评论 -
分批更新大量数据,避免锁表
批量更新大量数据的表的时候,会锁表,影响网站正常访问.我们可以按下面思路,分批更新,就不会影响网站正常运作了 declare @allCount int=0 ; declare @updateCount int=0; set rowcount 10000; set @updateCount=1; while(@updateCount>0) begin se原创 2011-06-17 17:02:00 · 1883 阅读 · 0 评论 -
bcp
导出格式:bcp jinbi.dbo.Code format nul -f F:/DB/currency_format1.fmt -c -U sa -P a导出数据:bcp jinbi.dbo.Code out F:/DB/currency1.txt -c -原创 2011-03-04 15:09:00 · 332 阅读 · 0 评论 -
sql 实现md5加密的函数
-- =============================================-- Author: felix-- Create date: 2011-11-24-- Description: 实现MD5加密算法,返回对字符串的加密结果串-- =============================================ALTER FUNCT转载 2011-11-24 10:17:11 · 1711 阅读 · 1 评论 -
在SQL Server里查看当前连接的在线用户数
use masterselect loginame,count(0) from sysprocesses group by loginameorder by count(0) descselect nt_username,count(0) from sysprocesses group by nt_usernameorder by count(0) desc转载 2011-12-27 09:29:02 · 2078 阅读 · 0 评论 -
ms sql 批量导入文本数据
bulk insert dbo.Import_data from 'D:\data.txt' with(FIELDTERMINATOR = ' ,',ROWTERMINATOR = '\n',BATCHSIZE=5000)原创 2012-01-10 13:58:06 · 295 阅读 · 0 评论 -
定时处理死锁
创建一个存储过程,作业里1分种执行一次 USE [master]GO/****** Object: StoredProcedure [dbo].[Proc_AutoKillLock] Script Date: 01/31/2012 13:59:12 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO转载 2012-01-31 13:57:45 · 479 阅读 · 0 评论 -
sqlserver 出现sql被锁时,查看加锁和被锁的sql
DECLARE @spid INTDECLARE @blk INTDECLARE @count INTDECLARE @index INTDECLARE @lock TINYINT SET @lock=0 CREATE TABLE #temp_who_lock ( id INT IDENTITY(1, 1), spid INT, blk IN...原创 2018-11-30 13:53:52 · 1202 阅读 · 0 评论