自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 监控数据库事物运行情况

SELECT DBT.DATABASE_ID, DB_NAME(DBT.DATABASE_ID) '数据库名', DBT.TRANSACTION_ID, AT.NAME, AT.TRANSACTION_BEGIN_TIME, CASE AT.TRANSACTION_TYPE

2015-01-29 09:36:28 758

原创 sql进制之间的转换

-----二进制转换十进制-----------------select sum(data1)from ( select substring('11011', number, 1)*power(2,len('11011')-number)data1 from (select number from master.dbo.spt_values where type='p

2014-11-27 10:55:30 1581

原创 sql日期处理以及转换

DECLARE @dt datetime SET @dt=GETDATE() DECLARE @number int SET @number=3 --1.指定日期该年的第一天或最后一天 --A. 年的第一天 SELECT CONVERT(char(5),@dt,120)+ '1-1 ' --B. 年的最后一天 SELECT CONVERT(char(5)

2014-11-27 09:22:14 978 1

原创 sql生成1000W数据

declare @d datetimeset @d=getdate()select * from dbo.ChunkSegmentMappingselect [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())USE tempdbGOCREATE TABLE tb(id char(8))CREATE UNIQUE INDEX IX_tb ON tb(id

2014-11-27 09:19:41 1125

原创 SQL Server 触发器

触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。Ø 什么是触发器    触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:update、insert、del

2014-11-07 17:19:42 802

原创 Select * 一定不走索引是否正确?

select * 一定不走索引是否正确?

2014-10-21 15:22:36 1709

原创 sql查询表大小行数以及使用空间

DECLARE @D DATETIMESET @D=GETDATE()SET NOCOUNT ON EXEC SP_MSFOREACHTABLE @PRECOMMAND=N'CREATE TABLE ##(ID INT IDENTITY,表名 SYSNAME,字段数 INT,记录数 INT,保留空间 NVARCHAR(20),使用空间 VARCHAR(20),索引使用空间

2014-10-14 18:23:40 1869

原创 数据库大型应用解决方案总结

随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。一、负载均衡技术负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔接在一起,各节点相互协作、共同负载、均衡压力,对客户端来说,整个群集可以视为一台具有超高

2014-10-09 13:34:09 517 1

原创 SQL Server数据库表锁定原理以及如何解除表的锁定

1. 数据库表锁定原理1.1 目前的C/S,B/S结构都是多用户访问数据库,每个时间点会有成千上万个user来访问DB,其中也会同时存取同一份数据,会造成数据的不一致性或者读脏数据. 1.2 事务的ACID原则 1.3 锁是关系数据库很重要的一部分, 数据库必须有锁的机制来确保数据的完整和一致性.1.3.1 SQL Server中可以

2014-10-09 13:10:35 1584

原创 数据库中临时表,表变量和CTE使用优势极其区别

数据库中临时表,表变量和CTE使用优势极其区别

2014-10-09 12:48:09 967

原创 SQL生成n位随机字符串

--1、借助newid() go --创建视图(因为在函数中无法直接使用newid()) create view vnewid as select newid() N'MacoId'; go --创建函数 create function getrandstr(@n int) returns varchar(max) as begin decla

2014-09-30 12:44:21 5462

原创 sql常用作业定义的T-SQL模板

--定义创建作业DECLARE @jobid uniqueidentifierEXEC msdb.dbo.sp_add_job @job_name = N'作业名称', @job_id = @jobid OUTPUT --定义作业步骤DECLARE @sql nvarchar(400),@dbname sysnameSELECT @dbname=DB_N

2014-09-29 11:43:35 1203

原创 比较两个数据库中的视图/存储过程的结构(结构比较,不是功能比较)

CREATE PROC P_COMPDB@DB1 SYSNAME, --第一个库@DB2 SYSNAME --第二个库ASEXEC('SELECT 类型=CASE ISNULL(A.XTYPE,B.XTYPE) WHEN ''V'' THEN ''视图'' ELSE ''存储过程'' END ,匹配情况=CASE WHEN A.NAME

2014-09-29 11:42:07 669

原创 sql分级汇总

--测试数据create table tb([DB-ID] varchar(10),ENTITY varchar(10),DATE varchar(10),[CUST-NO] int,AMOUNT decimal(10,2),TAX decimal(10,2))insert tb select 'RCHQ','001','2004-11-10',200000,100.00,17.00u

2014-09-29 11:30:08 1539

原创 生成索引信息及索引创建脚本

create proc p_helpindex @tbname sysname ='' ,@type char(1) = '1'as--生成索引信息及索引创建脚本--@tbname 表名,空返回所有表索引--@type 是否显示聚集索引,1显示聚集索引,2不显示聚集索引--调用:p_helpindex 'dbo.customers','1'with t as (select r

2014-09-25 17:28:22 1328

原创 update值与原值相同时,SQL Server会真的去update还是忽略呢?

考虑下面的情况:当update值与原值相同时,SQL Server会真的去update还是忽略?例如:update tbnameset name='abc' --name原来的值就是abcwhere id=1再如:update tbnameset name='abc' --name原来的值就是abcwhere name='abc'接下来我

2014-09-25 17:09:55 1803

原创 是什么引起执行计划变得极其糟糕? 应该使用更新统计信息来解决它吗?

考虑这种情况:在大多数时间里你的存储过程运行良好,但是有时非常差,性能仿佛从天下掉到地下,有人会说肯定是统计信息更新不及时,而且当你手动运行它并查看执行计划,你会发现预估行数和实际行数有很大差距,你会因此而确定是统计信息不准确造成执行计划生成不正确。但是,可能并不是。。。存储过程、使用sp_executesql的参数化语句、预编译的SQL语句都会重用一个缓存的执行计划,它是

2014-09-25 17:05:13 637

原创 Group by ALL

Group by ALL 。和不加ALL差别就是加了ALL后包含所有组和结果集,甚至包含那些其中任何行都不满足 WHERE 子句指定的搜索条件的组和结果集。注意的是指定了 ALL,将对组中不满足搜索条件的汇总列返回空值。declare @t table(id int,col char(2))insert @t select 1,'a'insert @t select 1,'a'inser

2014-09-25 13:41:23 1167

原创 SQL四个排名函数的区别

/*四个排名函数的区别:RANK()返回结果集的分区内每行的排名。行的排名是相关行之前的排名数加一。如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名。 DENSE_RANK()返回结果集分区中行的排名,在排名中没有任何间断。行的排名等于所讨论行之前的所有排名数加一。如果有两个或多个行受同一个分区中排名的约束,则每个约束行将接收相同的排名。 ROW_NUMBER()

2014-09-24 14:27:29 1072

原创 sql日期补全

IF OBJECT_ID('TBL')IS NOT NULLDROP TABLE TBLGOCREATE TABLE TBL(日期 DATE)GOINSERT TBLSELECT '2014-09-30' UNION ALLSELECT '2014-10-06'goDECLARE @DATE DATESELECT @DATE=MAX(日期) FROM TBL;WITH

2014-09-23 11:14:42 1953

原创 快速生成数据库字典

快速生成数据库字典

2014-09-12 14:59:58 2285

原创 除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询

top 100 percent

2014-09-12 14:54:55 4084

原创 快速生成100W数据

declare @d datetimeset @d=getdate()select * from dbo.ChunkSegmentMappingselect [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())USE tempdbGOCREATE TABLE tb(id char(8))CREATE UNIQUE INDEX IX_tb ON tb(id

2014-09-12 14:54:39 856

原创 SQL检查存储过程是否包含关键字

SELECT A.NAME FROM SYS.ALL_OBJECTS A,SYS.SQL_MODULES B WHERE A.IS_MS_SHIPPED=0 AND A.OBJECT_ID = B.OBJECT_ID AND A.[TYPE] IN ('P','V','AF') AND [DEFINITION] LIKE '% %'--存储过程包含的关键字ORDER BY A.[NAME]

2014-09-11 09:09:38 1599

原创 SQL使用递归实现数据的累加

--关于递归累计求和 if OBJECT_ID('test')is not null drop table test go create table test( id int identity(1,1), deptid char(3), empid char(4), salary int ) go insert test(deptid,empid,sala

2014-09-01 18:07:00 1293

原创 CTE 通用表表达式

概念:Common Table Expression,简称CTE,中文可以叫做,通用表表达式. 用处:处理以前版本中SQL不好现实,不好理解,复杂的查询问题.比如:分页,递归查询... 基本用法: WITH ()AS() SELECT * FROM 示例一(基本用法): with MyCTE(ID, Name)as( select

2014-09-01 17:54:32 546

原创 SQL SERVER 表结构信息查询(详细)

SELECT 表名=CASE WHEN a.colorder = 1 THEN d.name ELSE '' END, 表说明=CASE WHEN a.colorder = 1 THEN isnull(f.value, '') ELSE '' END , 字段序号=a.colorder , 字段名=a.name , 标识=CASE WHEN COLUMNPR

2014-09-01 17:36:58 624

原创 SQL合并统一数据(相同的在一行显示)

/*问题描述表Library有字段 表EmployeeInfo 字段LibraryId EmpIdEmpIdLibraryTitleLibraryOwner Name测试表Library数据为insert into Library(EmpId,LibraryTitle,Nam

2014-09-01 17:27:37 2479

原创 SQL使用apply进行拆分列值

--SQL2005以上版本可以结合apply进行拆分列值IF OBJECT_ID('tb') IS NOT NULL DROP TABLE tbGOCREATE TABLE tb (id INT,col VARCHAR(30))INSERT INTO tb VALUES(1,'aa,bb')INSERT INTO tb VALUES(2,'aaa,bbb,ccc')GO S

2014-09-01 17:22:03 553

原创 SQL查询和删除重复记录

--处理表重复记录(查询和删除)/******************************************************************************************************************************************************1、Num、Name相同的重复值记录,没有大小关系只保留一条

2014-09-01 16:46:29 1090

原创 查看SQLSERVER事务日志记录

大家知道在完整恢复模式下,SQLSERVER会记录每个事务所做的操作,这些记录会存储在事务日志里,有些软件会利用事务日志来读取操作记录恢复数据,例如:log explorer那么事务日志记录怎麽查看,里面都记录了些什么?打开可以利用下面SQL语句来查看所在数据库的事务日志记录1 USE [GPOSDB] --要查看事务日志记录的数据库2 GO3 SELECT *

2014-08-29 10:01:40 17152

原创 通过Oracle sql developer工具从sqlserver迁移数据到oracle

通过Oracle sql developer工具从sqlserver迁移数据到oracle  序言  一般情况下,sqlserver数据迁移到oracle,我们可以使用ODI来进行。但ODI的安装、配置、使用等比较繁琐,而且,要想真正掌握它,也需要一定的学习成本。这里我给大家介绍一个oracle免费工具Oracle sql developer;通过它我们可以简单、便捷地实现

2014-08-29 09:44:59 1021

转载 哄女人技巧,献给广大“傻男人"

1、如果你的女人在你面前哭了,无论什么原因,请抱紧她,再反抗也要抱紧,趴在桌子上永远没有在你怀里安心;2、如果你的女人指出了你的不是,请不要总是嫌她唠叨,若不是因为在乎她不会说你;3、如果你的女人和你赌气不理你,不要也学她,这正是考验你们的时候,“脸皮厚”的精神此时不发扬又更待何时;4、如果你的女人不听你的话,转身走了,一定要

2014-08-28 15:18:16 1661 8

原创 如果碰到日志文件过大的问题,用SHIRNK DATABASE, TRUNCATE LOG FILE不是很有效时,可以考虑试下下面的脚本

/* 如果碰到日志文件过大的问题,用SHIRNK DATABASE, TRUNCATE LOG FILE不是很有效时,可以考虑试下下面的脚本。把代码COPY到查询分析器里,然后修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小),运行即可*/----------------------------------------------------------------------

2014-08-28 09:46:36 701

原创 SQL行转列问题处理

问题描述:无论是在sql 2000,还是在 sql 2005 中,都没有提供字符串的聚合函数, 所以,当我们在处理下列要求时,会比较麻烦:有表tb, 如下:id value----- ------1 aa1 bb2 aaa2 bbb2 ccc需要得到结果:id values------ -----------1

2014-08-28 09:26:20 560

原创 SQL生成n位随机字符串

--1、借助newid()go--创建视图(因为在函数中无法直接使用newid())create view vnewidasselect newid() N'MacoId';go--创建函数create function getrandstr(@n int)returns varchar(max)asbegin declare @i int set @i=ce

2014-08-27 14:20:38 668

原创 用SQL语句生成某个库下所有存储过程脚本,并每个存为一个文件

DECLARE @s VARCHAR(4000),@n INT,@i INT,@s1 VARCHAR(100)SELECT IDENTITY(INT) id,text INTO ## FROM syscommentsSELECT @n=@@ROWCOUNT,@i=0WHILE @i<@n BEGIN SELECT @i=@i+1,@s=''

2014-08-27 13:41:48 615

原创 MSSQL 行转列

测试数据[sql] view plaincopy在CODE上查看代码片派生到我的代码片if object_id('tb')is not null drop table tb go create table tb([年度] varchar(4),[部门] varchar(10), [考核] int) insert tb values('2012','业务部',86) inse

2014-08-27 13:24:08 841

原创 使用MERGE语句同步表

先建好测试环境: USE TEMPDBGOIF OBJECT_ID('T1') IS NOT NULL DROP TABLE T1IF OBJECT_ID('T2') IS NOT NULL DROP TABLE T2GOCREATE TABLE T1(ID1 INT,VAL1 VARCHAR(50))CREATE TABLE T2(ID2 INT,VAL2 VARCHAR(5

2014-08-27 13:06:19 1404

转载 查询 SQL Server 系统目录常见问题

查询 SQL Server 系统目录常见问题SQL Server 2014其他版本此主题尚未评级 - 评价此主题本主题包含一个常见问题列表。 这些问题的答案是基于目录视图的查询。常见问题下列部分按类别列出常见问题。数据类型如何找到指

2014-08-27 12:50:05 618

提示
确定要删除当前文章?
取消 删除