博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2009年7月24日

摘要: 1. 原始单据与实体之间的关系  可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。  〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情... 阅读全文

posted @ 2009-07-24 23:34 linFen 阅读(239) 评论(0) 推荐(0)

摘要: 场景:集团式架构公司体系,因业务原因各子公司间数据相互独立,集团主管部门可对子公司进行数据监管、统计、分析;解决办法:采用部门编码权限方式(纯模型,各位看官勿笑,如有好的解决方式请提供)1、业务数据增加数据维护人员信息。2、部门增加权限编码,大致方式(父:0001、子一:00010001、子二:00010002)。3、数据访问根据当前用户所在部门 like数据维护人员所在部门进行比较。4、关于父子... 阅读全文

posted @ 2009-07-24 23:28 linFen 阅读(469) 评论(0) 推荐(0)

摘要: 一直听说SQL Server 2005所增加的镜像功能多么多么的好,苦于没有时间进行实施,现由于工作需要,特对 SQL Server 2005 进行镜像的配置,特记录如下:【基本概念】我理解的 SQL Server 的镜像实际上就是由三个服务器(也可以是同一服务器的三个 SQL 实例)组成的一个保证数据的环境,分别是:主服务器、从服务器、见证服务器。主服务器:数据存放的地方从服务器:数据备份的地方... 阅读全文

posted @ 2009-07-24 23:24 linFen 阅读(304) 评论(0) 推荐(0)

摘要: 生成的编号:例如:jx2009020001 共12位,由“固定开头+年月+0001”组成。 一、建立种子表:--DROP TABLE SST_KEYNOIF NOT EXISTS (SELECT * FROM DBO.SYSOBJECTS WHERE ID = OBJECT_ID(N'[DBO].[SST_KEYNO]') AND OBJECTPROPERTY(ID, N'... 阅读全文

posted @ 2009-07-24 23:19 linFen 阅读(718) 评论(3) 推荐(1)

摘要: /***********批量替换一个数据库中所有表中所有记录************/ declare @delStr nvarchar(500) set @delStr='这里是要替换的字符'/**********以下为操作实体************/ set nocount on declare @tableName nvarchar(100),@columnName nvarchar(10... 阅读全文

posted @ 2009-07-24 23:13 linFen 阅读(774) 评论(0) 推荐(0)

摘要: table行转列的sql详解tabele行转列的资料,网上搜一下很多。大家照着网上copy就可以实现自己想要的功能。但是大家在实现功能后是否想过行转列为什么要这样写?下面就以一个实例来分析, 希望对初学者有所帮助。一、要求1 创建数据表CREATE TABLE [dbo].[StuScore]( [stuid] [int] NOT NULL, [subject] [nvarchar](30) N... 阅读全文

posted @ 2009-07-24 23:07 linFen 阅读(868) 评论(0) 推荐(0)

摘要: 不同服务器数据库之间的数据操作不同数据库之间复制表的数据的方法:当表目标表存在时:insert into 目的数据库..表 select * from 源数据库..表当目标表不存在时:select * into 目的数据库..表 from 源数据库..表--如果在不同的SQL之间: insert into openrowset('sqloledb','目的服务器名';'sa';'',目的数据库.d... 阅读全文

posted @ 2009-07-24 23:04 linFen 阅读(659) 评论(0) 推荐(0)

摘要: SQL SERVER2005 分区表几何倍数提高网站性能 项目做到后期了,发现数据到数据在不断增长,现在是1000w多条,估计以后数据还会增加,可是现在数据库到索引也加了,在数据库做一个大大查询时,前台web会超时,很郁闷,怎么办呢,第一个想法是分库,可是分库这个表关联的太多了,并且这个表又是一对多中多大一方,不好处理,在google上工作了一天,终于让我发现了sql2005的新特性 :表分区功能... 阅读全文

posted @ 2009-07-24 22:59 linFen 阅读(322) 评论(0) 推荐(0)

摘要: 绑定事件01.var addEvent = function( obj, type, fn ) { 02.if (obj.addEventListener) 03.obj.addEventListener( type, fn, false ); 04.else if (obj.attachEvent) { 05.obj["e"+type+fn] = fn; 06.obj.attachEvent( ... 阅读全文

posted @ 2009-07-24 22:56 linFen 阅读(293) 评论(0) 推荐(0)

摘要: 简单T-Sql备份所有数据库 有的时候我们可以使用T-sql来完成一些看起来复杂又重复的工作.例如,备份所有数据库,你可以使用SSMS来完成,但那样会很累的.使用下面这段script也可完成,把备份路径改成你的目标文件夹即可,当然你可以写个存储过程.DECLARE @name VARCHAR ( 50 ) -- database name DECLARE @path VARCHAR ( 256 ... 阅读全文

posted @ 2009-07-24 22:55 linFen 阅读(289) 评论(0) 推荐(0)

摘要: CREATETABLE[dbo].[A]([SalesOrg][nvarchar](4)COLLATESQL_Latin1_General_CP850_BIN2NOTNULL,[SalesGroup][nvarchar](20)COLLATESQL_Latin1_General_CP850_BIN2NOTNULL,[DocumentType][nvarchar](25)COLLATESQL_Lat... 阅读全文

posted @ 2009-07-24 22:48 linFen 阅读(1786) 评论(0) 推荐(0)

摘要: 1防止sql注入式攻击(可用于UI层控制)#region防止sql注入式攻击(可用于UI层控制)23/**////4///判断字符串中是否有SQL攻击代码5///6///传入用户提交数据7///true-安全;false-有注入攻击现有;8publicboolProcessSqlStr(stringinputString)9{10stringSqlStr=@"and|or|exec|execute... 阅读全文

posted @ 2009-07-24 22:45 linFen 阅读(9333) 评论(0) 推荐(3)

摘要: SQL Server 清除数据库日志脚本(转)[代码] 阅读全文

posted @ 2009-07-24 22:39 linFen 阅读(498) 评论(0) 推荐(0)

摘要: backup log 数据库with no_log--收缩数据库dbcc shrinkdatabase (数据库 阅读全文

posted @ 2009-07-24 22:37 linFen 阅读(269) 评论(0) 推荐(0)

摘要: decimal 和 numeric (Transact-SQL)带固定精度和小数位数的数值数据类型。decimal[ (p[ , s] )] 和 numeric[ (p[ , s] )] 固定精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。decimal 的 ISO 同义词为 dec 和 dec(p, s)。numeric 在功能上等价于 decimal。p... 阅读全文

posted @ 2009-07-24 22:36 linFen 阅读(3592) 评论(1) 推荐(1)

摘要: 今天在看订阅的RSS的时候,看到这么一个问题:T-Sql中如何对分组的信息进行聚合,并以逗号连接字符;也就是对一个表中的某个字段进行分组,然后对另一个字段聚合,如果表达得不太清楚,请看下面的表。 原表:ParentChildCharlesWilliamCharlesHarryAnnePeterAnneZaraAndrewBeatriceAndrewEugenie处理后的结果: ParentChil... 阅读全文

posted @ 2009-07-24 22:34 linFen 阅读(827) 评论(2) 推荐(0)

摘要: --修改表名称EXEC sp_rename 旧表名,新表名--修改表字段名称EXEC sp_rename '表.旧字段','新字段','COLUMN'--修改表字段类型alter table 表 alter column 字段 类型(如:int)--查询当前数据库名select name from [master].[dbo].[sysdatabases] Where DbId=(Select D... 阅读全文

posted @ 2009-07-24 22:32 linFen 阅读(1311) 评论(1) 推荐(0)

摘要: --=============================================--Author:<Author,,Md.Marufuzzaman>--Createdate:<CreateDate,,03/05/2009>--Description:<Description,,>--Thanksto,,RBarryYoung--==========... 阅读全文

posted @ 2009-07-24 22:30 linFen 阅读(590) 评论(0) 推荐(0)

摘要: declare@dbnamevarchar(100)set@dbname='c:\db'+convert(char(8),getdate(),112)+replace(convert(char(6),getdate(),108),':','')+'.bak'backupdatabase[数据库名称]todisk=@dbnamewithinit 如果在SQL Server 里需要定时或者每隔一段时间... 阅读全文

posted @ 2009-07-24 22:22 linFen 阅读(1250) 评论(0) 推荐(0)

摘要: 在查询优化中,有一个重要的概念:空间换取查询时间 这一理论最好的应用就是:数据仓库(OLAP):在海量数据库里(一般是TB级)分析数据,通过对数据的ETL和计算汇总,得到有用的数据,并通过不同维度查看统计数据(一般比较少),实现上钻和下钻分析数据。 现在讨论一下在OLTP系统中空间换取查询时间常用的几个方法: 1,增加冗余表(计算汇总表) 2,增加冗余字段(包括计算字段) 3, 增加索引(包括计算... 阅读全文

posted @ 2009-07-24 22:21 linFen 阅读(645) 评论(0) 推荐(0)

摘要: 转自:http://www.dreamershop.com/info/n1023c7.aspx修改储存过程所有者CREATE PROCEDURE dbo.ChangeObjectOwner @OldOwner as NVARCHAR(128),--参数原所有者 @NewOwner as NVARCHAR(128)--参数新所有者 AS DECLARE @Name as NVARCHAR(128) ... 阅读全文

posted @ 2009-07-24 22:17 linFen 阅读(197) 评论(0) 推荐(0)

摘要: 一)主扩展模式 主扩展模式,通常用来将几个相似的对象的共有属性抽取出来,形成一个“公共属性表”;其余属性则分别形成“专有属性表”,且“公共属性表”与“专有属性表”都是“一对一”的关系。“专有属性表”可以看作是对“公共属性表”的扩展,... 阅读全文

posted @ 2009-07-24 22:13 linFen 阅读(472) 评论(0) 推荐(0)

摘要: 名值模式: 通常用来描述在系统设计阶段不能完全确定属性的对象,这些对象的属性在系统运行时会有很大的变更,或者是多个对象之间的属性存在很大的差异。举例如下(注:这个例子已经作了相当程度的简化,仅仅是用来帮助大家理解“名值模式”这个概念来使用的,请大家注意)。 1. 使用名值模式进行设计时,如果对“其他属性”仅作浏览保存、不作其它任何特殊处理,则通常会设... 阅读全文

posted @ 2009-07-24 22:11 linFen 阅读(519) 评论(1) 推荐(0)

摘要: 原创:胖子刘(转载请注明作者和出处,谢谢) (二)自联结模式自联结模式,也可以看作是“主从模式”的一种特殊情况(或者说是“变形”),它在一张表内实现了“一对多关系”,并且可以根据业务需要实现“有限层”或者“无限层”的主从嵌套。这种模式用得最多的情况就是实现“树形结构&... 阅读全文

posted @ 2009-07-24 22:10 linFen 阅读(436) 评论(0) 推荐(0)

摘要: createPROCEDURE[dbo].[auto_checkblocks]ASsetnocountonifexists(select*frommaster..sysprocesseswhereblocked<>0)begin/**//*showtopblockers,butnoduplicates*/select'请尝试使用KILL[SPID]来杀进程'--select'请尝试使用... 阅读全文

posted @ 2009-07-24 22:07 linFen 阅读(537) 评论(1) 推荐(0)

摘要: --查询死锁和阻塞的sql语句while1>0begininsertintotb(sqlt,ios)selectSUBSTRING(st.text,(qs.statement_start_offset/2)+1,((CASEstatement_end_offsetWHEN-1THENDATALENGTH(st.text)ELSEqs.statement_end_offsetEND-qs.st... 阅读全文

posted @ 2009-07-24 22:06 linFen 阅读(822) 评论(0) 推荐(0)

摘要: dmv分析索引的使用情况,包括扫描次数,更新次数,有利于你评估设计的索引使用效率,sql server 2005的确比2000在性能分析上提高很多。 user_seeks :通过用户查询执行的搜索次数。个人理解: 此统计索引seek的次数user_scans:通过用户查询执行的扫描次数。个人理解:此统计表扫描的次数,无索引配合user_lookups:通过用户查询执行的查找次数。个人理解:用户通过... 阅读全文

posted @ 2009-07-24 22:05 linFen 阅读(476) 评论(0) 推荐(0)

摘要: 分析sql执行计划重用次数,查看绑定变量使用情况 [代码]热爱祖国 阅读全文

posted @ 2009-07-24 22:04 linFen 阅读(470) 评论(0) 推荐(0)

摘要: 最近要回到公司,暂时离开客户的生产数据库,不能及时得到下列数据库信息: 1,系统运行sql语句的执行情况 2,统计每天全部表的数据变化(数据每天的增量)。 特意写了3个job线程,在晚上业务不繁忙的时候执行,来收集系统运行情况信息,等我回来再来分析sql,同时为系统优化提供参考。createtabletbSql([语句编译时间]datetime,[物理读取总次数]int,[每次逻辑读次数]int... 阅读全文

posted @ 2009-07-24 22:03 linFen 阅读(343) 评论(0) 推荐(0)

摘要: 目前在做一个项目优化时,想通过数据库层分析sql server系统性能,查了一下网上代码,修改了一下标题和DMVs代码,以下代码可以用来分析系统运行一段时间后,那些语句是系统忙的sql语句。做为参考。 另类使用: 一次在分析一个对账功能时,查看系统代码,看了半天,写得太不规范,又不写注释,看不明白。最后用了下面一个小技巧,和大家一起分享:就是在测量功能时,先以下命令清除sql server的缓存... 阅读全文

posted @ 2009-07-24 22:01 linFen 阅读(458) 评论(0) 推荐(0)

摘要: 整理了一下如何查看数据库信息,记得有一次,在客户生产环境中,通过 print @@Version 查看,发现没有安装Sql server Sp2 就直接给他安装上sp2,后来发现是Windows 2003的sp1,而不是Sql server ,下面语句就可以查看数据库的版本和补丁信息[代码] 阅读全文

posted @ 2009-07-24 21:58 linFen 阅读(859) 评论(0) 推荐(0)

摘要: 上周五,公司的同事,从客户那边回来,说一个人员选择页面很慢,页面打开需要15s左右,后来自己也试了一下,也的确需要比较长的时间,客户反应比较强烈。 通过DMV查出缓慢的两个语句如下:语句一:[代码] 语句二:[代码] 查询的两个表的数据量: 表humres: 1920 行 ,191次IO 表orgunitlink:256 行, 11 次IO 最大表才不到2000行数据,查询为何如此慢。看看... 阅读全文

posted @ 2009-07-24 21:51 linFen 阅读(6733) 评论(0) 推荐(0)

摘要: 这是SQL Server 2005里的介绍: 如果两个联接输入都很大,而且这两个输入的大小差不多,则预先排序的合并联接提供的性能与哈希联接相近。但是,如果这两个输入的大小相差很大,则哈希联接操作通常快得多。 哈希联接可以有效处理未排序的大型非索引输入。它们对复杂查询的中间结果很有用,因为: ·中间结果未经索引(除非已经显式保存到磁盘上然后创建索引),而且通常不为查询计划中的下一个操作进行... 阅读全文

posted @ 2009-07-24 21:49 linFen 阅读(265) 评论(0) 推荐(0)

摘要: 得到数据库存储过程列表:select * from dbo.sysobjects where OBJECTPROPERTY(id, N'IsProcedure') = 1 order by name得到某个存储过程的参数信息:(SQL方法)select * from syscolumns where ID in (SELECT id FROM sysobjects as a WHERE OBJ... 阅读全文

posted @ 2009-07-24 21:46 linFen 阅读(5190) 评论(2) 推荐(1)

摘要: 相关算法如下: 有兴趣可以测试一下,希望能给你带来帮助 usingSystem; usingSystem.Text; usingSystem.IO; namespacets{ classtest{ privatestaticstring[]startChars={"啊","芭","擦","搭","蛾","发","噶","哈","击","击","喀","垃","妈","拿","哦","啪", "期"... 阅读全文

posted @ 2009-07-24 21:41 linFen 阅读(493) 评论(1) 推荐(1)

摘要: 操作符“^”大家在基本理论都学习过他的意思,就是“异或”,但在实际编程中却很少用到。最近我用了发现它有几个惊人的功人。 "&"是与的意思! 第一:取反,比较你在数据库里有1一个情况,0表示另一种情况,这时在SQL server 2000 里我们可以设计数据类型为BIT, 我写一条更新语句,把原来是0变为1,把1变为0, UPDATEtable... 阅读全文

posted @ 2009-07-24 21:39 linFen 阅读(357) 评论(0) 推荐(0)

摘要: 执行如下SQLdeclare@tint exec('set @t=1') print(@t) 报如下错误! 服务器: 消息 137,级别 15,状态 2,行 1 必须声明变量 '@t'。 实际就是变量与动态语句不能共享, 那么换成这样就行, declare@tint set@t=1 print(@t) 或 exec('declare@tint; set@t=1; print(@t)') 但是有时... 阅读全文

posted @ 2009-07-24 21:37 linFen 阅读(404) 评论(0) 推荐(0)

摘要: 聚集索引,表中存储的数据按照索引的顺序存储,检索效率比普通索引高,但对数据新增/修改/删除的影响比较大非聚集索引,不影响表中的数据存储顺序,检索效率比聚集索引低,对数据新增/修改/删除的影响很小如何让你的SQL运行得更快 ---- 人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务... 阅读全文

posted @ 2009-07-24 21:34 linFen 阅读(313) 评论(0) 推荐(0)

摘要: 1. 在UPDATE语句中使用子查询同时改变多行的值UPDATE employee SET department=’Training’WHERE department <> ‘Training’ AND sales < (SELECT AVG(sales) FROM employeeWHERE department <>... 阅读全文

posted @ 2009-07-24 21:31 linFen 阅读(254) 评论(0) 推荐(0)

摘要: 就象许多的PHP开发者一样,在刚开始建立动态网站的时候,我都是使用相对简单的数据结构。PHP在连接数据库方面的确实是十分方便(译者注:有些人认为PHP在连接不同数据库时没有一个统一的接口,不太方便,其实这可以通过一些扩展库来做到这一点),你无需看大量的设计文档就可以建立和使用数据库,这也是PHP获得成功的主要原因之一。       前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊... 阅读全文

posted @ 2009-07-24 21:25 linFen 阅读(244) 评论(0) 推荐(0)

摘要: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[XTJ_NewsInfor_DeleteArray]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[XTJ_NewsInfor_DeleteArray]GO--------... 阅读全文

posted @ 2009-07-24 21:21 linFen 阅读(507) 评论(0) 推荐(0)

摘要: 在项目中,我们经常遇到或用到分页,那么在大数据量(百万级以上)下,哪种分页算法效率最优呢?我们不妨用事实说话。测试环境硬件:CPU 酷睿双核T5750 内存:2G软件:Windows server 2003 + Sql server 2005OK,我们首先创建一数据库:data_Test,并在此数据库中创建一表:tb_TestTable[代码]然后我们在数据表中插入2000000条数据:[代码]我... 阅读全文

posted @ 2009-07-24 21:19 linFen 阅读(356) 评论(0) 推荐(0)

摘要: SQL Server 视图创建点滴 视图在数据库开发过程中是非常重要的,对提高查询速度有很大的提高。因此我们的学会创建视图,并且有效的使用视图。(1)表准的SQL视图 标准视图比较简单,大家也都在使用,在此就不垒述了。(2)使用动态视图 标准视图有一个严重的局限性,那就是标准视图不支持参数。俗话说“法网恢恢,疏而不漏”,呵呵,我们也可以变通的使用带参数的视图。实现方法是我... 阅读全文

posted @ 2009-07-24 21:14 linFen 阅读(403) 评论(0) 推荐(0)

摘要: 1. 死锁原理 根据操作系统中的定义:死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。 死锁的四个必要条件:互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。非剥夺条件(No pre-emption):已经分... 阅读全文

posted @ 2009-07-24 21:13 linFen 阅读(3083) 评论(1) 推荐(4)

摘要: SQL Server中解决死锁的新方法介绍数据库操作的死锁是不可避免的,本文并不打算讨论死锁如何产生,重点在于解决死锁,通过SQL Server 2005, 现在似乎有了一种新的解决办法。 将下面的SQL语句放在两个不同的连接里面,并且在5秒内同时执行,将会发生死锁。 use Northwindbegin tran  insert into Orders(CustomerId) values(@#... 阅读全文

posted @ 2009-07-24 21:11 linFen 阅读(39810) 评论(1) 推荐(1)

摘要: 锁的概述 一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏读 A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致 不可重复读 A用户读取数据,随后B用户读出该数据并... 阅读全文

posted @ 2009-07-24 21:09 linFen 阅读(1243) 评论(0) 推荐(0)