最常用的NoSQL数据库
摘要:在几年内,NoSQL数据库一直以性能、可扩展性、灵活的模式和分析能力聚焦着人们的注意力。尽管关系型数据库对于某些用例来说仍是一个不错的选择,就像结构数据和要求ACID事务的应用,但是NoSQL在以下用例中将更具优势:存储的数据实质上是半结构化或者松散的。要求一定的等级的性能和扩展性。存取该数据的应用与最终的一致性相吻合。非关系型数据库典型支持以下功能:灵活的模式无共享架构分片作为数据存储模型的一部分异步复制使用BASE替代ACID事务InfoQ英文网对当下经常使用的NoSQL数据库进行了盘点:文档数据库MongoDB:开源、面向文档,也是当下最人气的NoSQL数据库。CounchDB:Apac
阅读全文
posted @
2013-12-30 11:37
代岳强
阅读(804)
推荐(0) 编辑
数据字典类别编号规范
摘要:项目的编码原则 项目编码是计算机查找信息的主要依据和手段,它为数据的记录、存储和检索提供了一种简化的符号标识,提高了数据处理的效率和准确性。项目编码实质上是将相同内容、相同性质和需要统一管理的项目归并在一起,将不同的和需要分别管理的项目区分开来,自上而下排列成一个有层次的逐级展开的标准分类体系。在此基础上,用科学、实用和统一的原则和方法对分类项目进行标准编码,并确立代码与项目之间的对应关系。对每一级分类、每一个项目赋予有一定规律性的、计算机和人能识别和处理的符号和代码,建立一个标准的编码体系,以此作为医院信息系统基础数据进行编码的依据和准则,并确立代码与项目之间的对应关系。 以合理性、规范..
阅读全文
posted @
2013-07-31 11:36
代岳强
阅读(5381)
推荐(0) 编辑
得到连续序号、日期查询
摘要:得到连续序号SQL2000:1:select number from master..spt_values where type='p' --0-2552: select top 10000 id=identity(int,1,1) into #t from sysobjects,syscolumnsSQL2005:1:CTE方式递归with cte as( select 1 as num union all select num +1 from cte where num<1000)select * from cte option(maxrecursion 0)...
阅读全文
posted @
2013-05-23 18:04
代岳强
阅读(420)
推荐(0) 编辑
SQLServer的安全性设计
摘要:http://download.csdn.net/download/dba_huangzj/5395925
阅读全文
posted @
2013-05-17 16:16
代岳强
阅读(235)
推荐(0) 编辑
SQL Server 2005无日志文件附加数据库[转载]
摘要:公司网站运营两年多了,日志文件超级大,在重装系统的时候,为了省事,就没有备份日志文件,而且是没有分离就把日志文件给删掉了(下次一定要记得先分离再删日志文件)。结果造成数据库怎么都附加不上。出现错误。解决办法:1、新建一个同名数据库。2、停止数据库服务,覆盖新建的数据库主文件(小技巧:最好放在同一个磁盘里面,把新建的数据库主文件删掉或移开,再把要恢复的数据库主文件剪切过去,这样就可以节省时间。)3、启动数据库服务,数据库变为置疑或可疑状态。然后在查询分析器中运行:alter database 无日志文件的数据库名称 set emergency设置为紧急状态。4、再运行:alter databas
阅读全文
posted @
2013-05-17 15:25
代岳强
阅读(174)
推荐(0) 编辑
SQL SERVER 查看用户权限
摘要:--用户与角色关系 select a.uid as uid,a.status as uStatus,a.name as uName, b.uid as rId,b.status as rStatus,b.name as rName from sysusers a left join sysmembers m on m.memberuid = a.uid left join sysusers b on b.gid = m.groupuid where a.issqluser =1 --a.islogin =1 --b.issqlrole--用户或角色在数据库中的授权信息select b.id..
阅读全文
posted @
2013-05-15 19:30
代岳强
阅读(313)
推荐(0) 编辑
SQL语句签名的用户自定义函数
摘要:T-SQL函数实现 1 IF OBJECT_ID('dbo.fn_SQLSigTSQL') IS NOT NULLDROP FUNCTION dbo.fn_SQLSigTSQL;GO 2 CREATE FUNCTION dbo.fn_SQLSigTSQL 3 (@p1 NTEXT, @parselength INT = 4000) 4 RETURNS NVARCHAR(4000) 5 6 7 -- 8 --该函数以“现状”提供且没有任何担保 9 --同时也没有授予任何权利 10 -- 使用该函数所包含的脚本示例受下列条款约束11 -- http://www.microsoft.
阅读全文
posted @
2013-05-15 17:12
代岳强
阅读(271)
推荐(0) 编辑
显示所有数据库IO以及IO等待时间
摘要:以下SQL可查询出当前数据库实例中,那些数据库,那些数据类型是操作IO和IO等待的主要元素。以便分析有关数据库的操作。 1 with dbio as 2 ( 3 select 4 DB_NAME(t.database_id) databasename, 5 case mf.type when 1 then 'log' else 'data' end file_type, 6 SUM(t.num_of_bytes_read+t.num_of_bytes_written) as io, 7 SUM(t.io_stall) io_stall 8 fro...
阅读全文
posted @
2013-05-15 11:21
代岳强
阅读(3153)
推荐(0) 编辑
查询数据库存在的重要级等待,影响查询效率
摘要:根据在固态查询优化方面的经验,I/O等待是目前客户遇到的最常见等待。这其中有几个原因,I/O通常是数据处理操作最昂贵的资源。而且,当对查询或索引的设计或优化的不理想的情况下,会导致额外的I/O。此时,客户考虑计算机性能是,一般只考虑cpu和内存,而不会给I/O子系统足够的关注,数据库系统需要强健的I/O子系统。 有些系统不必访问大部分数据,只对少数数据频繁访问。使用OLTP时通常是这种情况,它包含存储过程和查询只访问少量数据,但是调用频繁。在这种情况下,代码的编译和重新编译可能成为产生瓶颈的主要原因。OLTP系统涉及大量对少量数据的频繁修改,在这种情况下事务日志经常成为瓶颈。因为所有临时...
阅读全文
posted @
2013-05-13 12:30
代岳强
阅读(574)
推荐(0) 编辑
查找某数据库中的列是否存在某个值
摘要:if object_id('spFind_Column_In_DB') is not null drop proc spFind_Column_In_DBgo--date:2013-5-10--author:dyq--decs:搜索数据库中是否存在输入的值--results:tablename,columnamecreate proc spFind_Column_In_DB ( @type int,--类型:1为文字类型、2为数值类型 @str nvarchar(100)--需要搜索的名字 ) as --创建临时表存放结果 create table #tbl(PK...
阅读全文
posted @
2013-05-10 19:06
代岳强
阅读(1274)
推荐(0) 编辑
SQL Server中汇总功能的使用GROUPING,ROLLUP和CUBE
摘要:第一次看到这样的SQL语句,看不懂,其中用到了下面的不常用的聚集函数:GROUPING用于汇总数据用的运算符: ROLLUPuse northwindgoSELECT CASE GROUPING(o.customerid) WHEN 0 THEN o.customerid ELSE '(Total)' END AS AllCustomersSummary, CASE GROUPING(od.orderid) WHEN 0 THEN od.orderid ELSE -1 END AS IndividualCustomerSummary, SUM(od.quantity*od.un
阅读全文
posted @
2013-05-10 15:03
代岳强
阅读(475)
推荐(1) 编辑
Identity列
摘要:原文地址 : http://www.simple-talk.com/sql/t-sql-programming/identity-columns/Identity 列,有名字,基数,步长。当向表中插入一条记录,Identity列会以当前基数加上步长的结果插入到表中。注意:Identity列,既不会保证不重复,也不会保证其数据的连续性。所以,如果你的系统需要其唯一,一定要在该Identity列加上唯一索引。创建和使用Identity列我们先创建一个表作为示例。[c-sharp] view plaincopyprint?CREATE TABLE #a(i INT IDENTITY(1,1), j
阅读全文
posted @
2013-05-07 10:48
代岳强
阅读(505)
推荐(0) 编辑
CLR实用函数:正则、字符串聚合 --转载
摘要:写了四个CLR函数,我们比较常用的功能自定义函数REGULARMATCH()对应C#中MATCHIS_REGULARMATCH()对应C#中IS_MATCH自定义聚合STR_SUM字符串聚合,中间半角逗号分隔STR_UNION_SUM字符串去重聚合,也是半角逗号分隔使用示例: 1 USE MASTER 2 GO 3 4 5 --判断手机号是否合法 6 SELECT dbo.IS_REGULARMATCH('13888888888','^(1[3,5,8,4][0-9])\d{8}$'),dbo.IS_REGULARMATCH('123456789'
阅读全文
posted @
2013-05-03 19:02
代岳强
阅读(1031)
推荐(0) 编辑
数据表中行版本标示
摘要:if OBJECT_ID('ExampleTable2') is not null drop table ExampleTable2CREATE TABLE ExampleTable2 (PriKey int PRIMARY KEY, VerCol rowversion) ;insert into ExampleTable2 (PriKey)select 1 unionselect 2 unionselect 3 select * from ExampleTable2 说明:公开数据库中自动生成的唯一二进制数字的数据类型。rowversion 通常用作给表行加版本戳的机制。存储
阅读全文
posted @
2013-05-03 18:32
代岳强
阅读(190)
推荐(0) 编辑
如何把SQLServer数据库从高版本降级到低版本?
摘要:由于目前还广泛使用着SQLServer2000,很多公司又想使用新的SQLServer,从而直接【分离/附加】或者【备份/还原】数据库,在 不同版本之间存放。往往就会遇到版本不兼容的问题。前几天遇到了从我本机2008R2上备份的一个数据库还原到2008上面时报错:从 运行版本10.50.2500(2008R2是10.50)和10.00.1600(2008是10.00)中可以看出这个版本不兼容问题,大部分情况 下,从低版本升级到高版本,只要不是跨度太大,如2000升级到2012,都不会怎么报错。除非使用了一些新版本不兼容的特性如*=来实现left join的语句。但是就像上图那样,从高版本还原到
阅读全文
posted @
2013-05-03 15:38
代岳强
阅读(452)
推荐(0) 编辑
SQL Server FOR XML PATH 语句的应用
摘要:在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用示例。?12345DECLARE @TempTable table(UserID int , UserName nvarchar(50));insert into @TempTable (UserID,UserName) values (1,'a')insert into @TempTable (UserID,UserName) values (2,'b')select UserID,UserName from @TempTable FOR XML PA
阅读全文
posted @
2013-05-02 19:50
代岳强
阅读(348)
推荐(0) 编辑
SQL Server 检测是不是数字型的数据(两种方法)
摘要:检测是不是数字型的数据, 两种方法1. ISNUMERIC ( expression )2. PATINDEX ( '%pattern%' , expression )1. ISNUMERIC ( expression )如果是数字类型则返回 1 ,不是则返回 0但ISNUMERIC有时是不可靠的,如果你不允许expression包含有任何字母,则会判断错:如:ISNUMERIC(‘23e4’)返回 1 ISNUMERIC(‘23d4’)返回 12. PATINDEX ( '%pattern%' , expression )返回值为第一个满足pattern的位置
阅读全文
posted @
2013-05-02 18:32
代岳强
阅读(2332)
推荐(0) 编辑
分拆列值
摘要:有表tb, 如下:id value----------- -----------1 aa,bb2 aaa,bbb,ccc欲按id,分拆value列, 分拆后结果如下:id value----------- --------1 aa1 bb2 aaa2 bbb2 ccc创建表和测试数据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. 旧的解决方法(sql server 2000
阅读全文
posted @
2013-05-02 16:27
代岳强
阅读(227)
推荐(0) 编辑
实现小数据量和海量数据的通用分页显示存储过程
摘要:建立一个 Web 应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将相关的记录锁住,直到取消游标。游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作。而对于多表和大表中定义的游标(大的数据集合)循环很容易使程序进入一个漫长的等待甚至死机。 更重要的是,对于非常大的数据模型而言,分页检索时,如果按照传统的每次都加载整个数据源..
阅读全文
posted @
2013-05-02 15:16
代岳强
阅读(348)
推荐(1) 编辑
用SQL语句获得一个存储过程返回的表
摘要:定义一个存储过程如下:createproc[dbo].[test1] @idint as select1as id,'abc'as name unionall select@idas id,'zzz'as name返回两行数据. 现在想用SQL语句来调用这个存储过程,并把他返回的表放入变量中.可以如下做:declare @table table(id int,name varchar(50))--定义表变量来存放存储过程返回的内容 insert into@tableexec test1 2--将存储过程执行的结果放入表变量中 select* from@table
阅读全文
posted @
2013-04-30 09:29
代岳强
阅读(113)
推荐(0) 编辑