- 博客(54)
- 收藏
- 关注
原创 监控数据库事物运行情况
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 950
原创 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 2206
原创 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 1210 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 1379
原创 SQL Server 触发器
触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。Ø 什么是触发器 触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:update、insert、del
2014-11-07 17:19:42 900
原创 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 2131
原创 数据库大型应用解决方案总结
随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。一、负载均衡技术负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔接在一起,各节点相互协作、共同负载、均衡压力,对客户端来说,整个群集可以视为一台具有超高
2014-10-09 13:34:09 689 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 1942
原创 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 5974
原创 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 1342
原创 比较两个数据库中的视图/存储过程的结构(结构比较,不是功能比较)
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 798
原创 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 2000
原创 生成索引信息及索引创建脚本
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 1552
原创 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 2085
原创 是什么引起执行计划变得极其糟糕? 应该使用更新统计信息来解决它吗?
考虑这种情况:在大多数时间里你的存储过程运行良好,但是有时非常差,性能仿佛从天下掉到地下,有人会说肯定是统计信息更新不及时,而且当你手动运行它并查看执行计划,你会发现预估行数和实际行数有很大差距,你会因此而确定是统计信息不准确造成执行计划生成不正确。但是,可能并不是。。。存储过程、使用sp_executesql的参数化语句、预编译的SQL语句都会重用一个缓存的执行计划,它是
2014-09-25 17:05:13 848
原创 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 1808 1
原创 SQL四个排名函数的区别
/*四个排名函数的区别:RANK()返回结果集的分区内每行的排名。行的排名是相关行之前的排名数加一。如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名。 DENSE_RANK()返回结果集分区中行的排名,在排名中没有任何间断。行的排名等于所讨论行之前的所有排名数加一。如果有两个或多个行受同一个分区中排名的约束,则每个约束行将接收相同的排名。 ROW_NUMBER()
2014-09-24 14:27:29 1449
原创 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 2299
原创 快速生成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 1015
原创 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 1892
原创 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 1957
原创 CTE 通用表表达式
概念:Common Table Expression,简称CTE,中文可以叫做,通用表表达式. 用处:处理以前版本中SQL不好现实,不好理解,复杂的查询问题.比如:分页,递归查询... 基本用法: WITH ()AS() SELECT * FROM 示例一(基本用法): with MyCTE(ID, Name)as( select
2014-09-01 17:54:32 824
原创 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 790
原创 SQL合并统一数据(相同的在一行显示)
/*问题描述表Library有字段 表EmployeeInfo 字段LibraryId EmpIdEmpIdLibraryTitleLibraryOwner Name测试表Library数据为insert into Library(EmpId,LibraryTitle,Nam
2014-09-01 17:27:37 3760
原创 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 709
原创 SQL查询和删除重复记录
--处理表重复记录(查询和删除)/******************************************************************************************************************************************************1、Num、Name相同的重复值记录,没有大小关系只保留一条
2014-09-01 16:46:29 1246
原创 查看SQLSERVER事务日志记录
大家知道在完整恢复模式下,SQLSERVER会记录每个事务所做的操作,这些记录会存储在事务日志里,有些软件会利用事务日志来读取操作记录恢复数据,例如:log explorer那么事务日志记录怎麽查看,里面都记录了些什么?打开可以利用下面SQL语句来查看所在数据库的事务日志记录1 USE [GPOSDB] --要查看事务日志记录的数据库2 GO3 SELECT *
2014-08-29 10:01:40 28095
原创 通过Oracle sql developer工具从sqlserver迁移数据到oracle
通过Oracle sql developer工具从sqlserver迁移数据到oracle 序言 一般情况下,sqlserver数据迁移到oracle,我们可以使用ODI来进行。但ODI的安装、配置、使用等比较繁琐,而且,要想真正掌握它,也需要一定的学习成本。这里我给大家介绍一个oracle免费工具Oracle sql developer;通过它我们可以简单、便捷地实现
2014-08-29 09:44:59 1524
转载 哄女人技巧,献给广大“傻男人"
1、如果你的女人在你面前哭了,无论什么原因,请抱紧她,再反抗也要抱紧,趴在桌子上永远没有在你怀里安心;2、如果你的女人指出了你的不是,请不要总是嫌她唠叨,若不是因为在乎她不会说你;3、如果你的女人和你赌气不理你,不要也学她,这正是考验你们的时候,“脸皮厚”的精神此时不发扬又更待何时;4、如果你的女人不听你的话,转身走了,一定要
2014-08-28 15:18:16 1946 8
原创 如果碰到日志文件过大的问题,用SHIRNK DATABASE, TRUNCATE LOG FILE不是很有效时,可以考虑试下下面的脚本
/* 如果碰到日志文件过大的问题,用SHIRNK DATABASE, TRUNCATE LOG FILE不是很有效时,可以考虑试下下面的脚本。把代码COPY到查询分析器里,然后修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小),运行即可*/----------------------------------------------------------------------
2014-08-28 09:46:36 819
原创 SQL行转列问题处理
问题描述:无论是在sql 2000,还是在 sql 2005 中,都没有提供字符串的聚合函数, 所以,当我们在处理下列要求时,会比较麻烦:有表tb, 如下:id value----- ------1 aa1 bb2 aaa2 bbb2 ccc需要得到结果:id values------ -----------1
2014-08-28 09:26:20 658
原创 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 834
原创 用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 885
原创 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 1045
原创 使用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 1626
转载 查询 SQL Server 系统目录常见问题
查询 SQL Server 系统目录常见问题SQL Server 2014其他版本此主题尚未评级 - 评价此主题本主题包含一个常见问题列表。 这些问题的答案是基于目录视图的查询。常见问题下列部分按类别列出常见问题。数据类型如何找到指
2014-08-27 12:50:05 857
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人