![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库技术
文章平均质量分 72
fangaoxin
知人不必言尽, 留三分余地于人, 留些口德于己;
责人不必苛尽, 留三分余地于人, 留些肚量于己;
才能不必傲尽, 留三分余地于人, 留些内涵于己;
锋芒不必露尽, 留三分余地于人, 留些深敛于己;
有功不必邀尽, 留三分余地于人, 留些谦让于己;
得理不必争尽, 留三分余地于人, 留些宽容于己;
得宠不必
展开
-
数据分区实例概述
1,分区作用:将数据分放到多个物理磁盘上,利用并行,多个磁盘同时吞吐以提升IO能力,同时每个分区数据量小,也减少了数据的扫描,提升了命中速度。实际上表逻辑上并未拆分,只是分散存储于不同的物理文件上,相当于把一张表大数据无限极细化到多张表上,多个驱动上,但是访问时却还是一样的访问,因为本身并未新建任何表。注:即使放到一块磁盘上,因每个分区数据量小,扫描范围减少,也能提高速度。表分区方法:1,按时原创 2011-08-31 10:37:19 · 939 阅读 · 0 评论 -
如何优化数据库中数据的查询
<br /><br />建立索引 <br />(一)深入浅出理解索引结构 <br /> 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: <br />其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“转载 2011-03-31 16:44:00 · 713 阅读 · 0 评论 -
连接oracle的总结(关于tnsname和监听)
<br />这篇文章写的很不错,把oracle后台原理基本上都讲的很清楚,最经我在虚拟机里安装的 10g,不断的出现客户端无法连接服务器的问题,无意中看到这篇文章,受益匪浅,和大家分享一下---------------------------------------------------------------------------------该文是我连接oracle的总结,特别适合于程序开发人员与oracle菜鸟 <br /> <br />如何配置才能使客户端连到数据库: <br />要使一个客户端转载 2011-03-31 14:27:00 · 499 阅读 · 0 评论 -
数据库语句优化漫谈
<br />优化重点:<br /><br /> <br />1 索引应该尽量小,使用字节数小的列建索引好(参照索引的创建),不要对有限的几个值的字段建单一索引如性别字段。索引不能建得太多和太大。索引是把“双刃剑”,查询快,增删改操作就会慢,而且有可能影响其他sql. 一般的20%的代码占据了80%的资源,优化的重点是这些慢的地方。索引的使用要恰到好处,其使用原则如下: <br /> ●在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。 <b原创 2011-03-31 11:10:00 · 547 阅读 · 0 评论 -
数据库中存储与读取文件
<br /><br /> <br />if exists <br />(<br />select * <br />from dbo.sysobjects <br />where id = object_id(N'[dbo].[p_binaryIO]') <br />and OBJECTPROPERTY(id, N'IsProcedure') = 1<br />)<br />drop procedure [dbo].[p_binaryIO]<br />GO<br /> <br />/*--bcp 实现二进制文转载 2011-02-24 14:10:00 · 506 阅读 · 0 评论 -
Job操作:数据库备份与还原处理
<br /><br />--利用T-SQL语句,实现数据库的备份与还原的功能<br />--体现了SQL Server中的四个知识点:<br />--1. 获取SQL Server服务器上的默认目录<br />--2. 备份SQL语句的使用<br />--3. 恢复SQL语句的使用,同时考虑了强制恢复时关闭其他用户进程的处理<br />--4. 作业创建SQL语句的使用<br /> <br />/*1.--得到数据库的文件目录<br /> <br /> @dbname 指定要取得目录的数据库原创 2011-02-22 17:58:00 · 894 阅读 · 0 评论 -
使用事务与锁,实现一个用户取过的数据不被其他用户取到
<br /><br />问题描述:<br />用ADO访问数据库,从一个表中取一定的记录(比如20行),取出后在程序中使用,使用完后删除掉记录(不用更新或删除记录)。在多用户操作下(每个用户采用相同的操作),怎么保证一个用户已选取的记录不被其他用户选取?<br /> <br />问题解决:<br />处理这类问题的一般方法是增加一个标志列,每个用户取的记录设置一个标志,新的用户只从标志为未取的记录中获取记录。<br />而本文利用事务与锁来控制数据的处理,不需要增加任何标志列<br />下面是具体的解决示例原创 2011-03-04 14:02:00 · 503 阅读 · 0 评论 -
使用更改跟踪实现数据同步
<br /><br />SQL Server 2008 引入了更改跟踪,这是一种轻量型解决方案,它为应用程序提供了一种有效的更改跟踪机制。通常,若要使应用程序能够查询对数据库中的数据所做的更改和访问与这些更改相关的信息,应用程序开发人员必须实现自定义更改跟踪机制。创建这些机制通常涉及多项工作,并且常常涉及使用触发器、timestamp 列和新表组合来存储跟踪信息,同时还会涉及使用自定义清除过程。<br />通过更改跟踪,可以很容易地编写同步数据的应用,下面是一个使用更改跟踪实现单向数据同步的示例。<br /转载 2011-03-04 11:31:00 · 670 阅读 · 0 评论 -
MS SQL Server查询优化方法
<br /><br />MS SQL Server查询优化方法<br />查询速度慢的原因很多,常见如下几种 <br /><br /> 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) <br /> 2、I/O吞吐量小,形成了瓶颈效应。 <br /> 3、没有创建计算列导致查询不优化。 <br /> 4、内存不足 <br /> 5、网络速度慢 <br /> 6、查询出的数据量过大(转载 2011-02-12 09:00:00 · 488 阅读 · 0 评论 -
MS SQL用ROWCOUNT解决TOP子句不支持变量的问题
<br /><br />MS SQL用ROWCOUNT解决TOP子句不支持变量的问题 <br />因为仰望ORACLE,所以一直都以为SQL SERVER很笨。<br />据传SQL 2005有了RowID的东西,可以解决TOP排序的问题。可惜还没有机会体验。在SQL 2000中写存储过程,总会遇到需要TOP的地方,而一旦遇到TOP,因为没办法把TOP后面的数字作为变量写到预编译的语句中去,所以只能够使用构造SQL,使用Exec来执行。不说效率的问题,心里也总觉得这个办法很笨。<br />实际上,在SQL原创 2011-02-28 17:01:00 · 791 阅读 · 0 评论 -
MS SQL DTS 概述
对于MS SQL-Server的DTS,在使用MS SQL-Server2000时,有最基本的接触,但仅限时简单的数据导入/导出。当开始了解ETL时,才发现DTS原来就是ETL的应用之一。<br /> 先不谈论DTS的好坏,但它至少MS产品的特点,易学,易用。所以,要了解ETL的应用,从DTS开始,在我看来,是个不错的选择。我只是学习,所以我没 有能耐去评价它,下面,只能讲DTS的功能一一列举出来,可能这些与SQL-Server的联机帮助有些重复,但对我来说,是一个加深记忆的方法。<br />原创 2011-02-24 14:43:00 · 827 阅读 · 0 评论 -
根据表中记录的变化情况自动维护作业
<br /> /*--作业处理实例<br /><br /> 根据 sendTab 的 SendTime 定制作业<br /> 并且在该作业完成时,可以自动删除作业*/<br /><br />--示例<br /><br />--测试表<br />CREATE TABLE dbo.sendTab(<br /> ID int IDENTITY(1,1),<br /> Name nvarchar(10),<br /> SendTime datetime,<br /> Accept转载 2011-02-24 14:27:00 · 414 阅读 · 0 评论 -
创建作业的通用存储过程
<br /><br />if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_JobSet]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)<br />drop procedure [dbo].[p_JobSet]<br />GO<br />/*--定时调用存储过程<br /> 创建一个在指定时间,调用指定存储过程的作业<br /> 作业执行完成后会自动删除*/<br />/转载 2011-02-24 14:19:00 · 363 阅读 · 0 评论 -
通过作业,定时同步两个数据库
<br />--定时同步服务器上的数据<br />--例子:<br />--测试环境,SQL Server2000,远程服务器名:xz,用户名为:sa,无密码,测试数据库:test<br />--服务器上的表(查询分析器连接到服务器上创建)<br />create table [user](id int primary key,number varchar(4),name varchar(10))<br />go<br />--以下在局域网(本机操作)<br />--本机的表,state说明:null 表示转载 2011-02-24 14:17:00 · 536 阅读 · 0 评论 -
恢复xp_cmdshell SQL Server阻止了对组件 'xp_cmdshell' 的过程'sys.xp_cmdshell' 启用
<br /><br />SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。<br />SQL2005 在默认的设置中是删除了 XP_CMDSHELL的,因此也在注射过程中产生了点困难。后来经过查看M转载 2011-01-24 15:41:00 · 1790 阅读 · 0 评论 -
自动定时备份sqlserver数据库
<br /><br />下面是我已经证实可用的自动备份的方法.<br /> 1、打开企业管理器->管理->sql server代理<br /> 2、新建一个作业,作业名称随便取,例如:data备份,所有者选择sa,当然你也可以选择其他用户,前提是该用户有执行作业的权限;<br /> 3、点击步骤标签,进入步骤面板.新建步骤,步骤名可以随便填写,如步骤1,类型和数据库默认,不需要修改.命令中写入以下语句:<br />BACKUP DATABASE [数据库名] TO DISK = N'F://d原创 2011-01-23 15:45:00 · 1123 阅读 · 0 评论 -
简要介绍SQL Server 2008新的事件处理系统—SQL Server Extended Events
<br /><br />SQL Server Extended Events(下面简称XEvent)是SQL Server 2008里新加的事件处理系统,用来取代SQL Server原先的SQL Trace的跟踪机制。事件处理系统对一个复杂服务器系统的排错,调试是极为关键的。和SQL Server原来的事件处理系统相比较,XEvent具有下列的优势:消耗更少的系统资源,更适用于在产品服务器上的排错和调试。并且每收集一个系统事件所消耗的资源都是可预测的。不仅仅能收集事件数据,还能收集在这事件触发点的系统动态运原创 2011-01-18 16:33:00 · 660 阅读 · 0 评论 -
在SQL Server 2005中实现表的行列转换
<br />PIVOT和UNPIVOT关系运算符是SQL Server 2005提供的新增功能,因此,对升级到SQL Server 2005的数据库使用PIVOT和UNPIVOT时,数据库的兼容级别必须设置为90(可以使用sp_dbcmptlevel存储过程设置兼容级别)。在查询的FROM子句中使用PIVOT和UNPIVOT,可以对一个输入表值表达式执行某种操作,以获得另一种形式的表。PIVOT运算符将输入表的行旋转为列,并能同时对行执行聚合运算。而UNPIVOT运算符则执行与PIVOT运算符相反的操作,它原创 2011-01-18 16:03:00 · 415 阅读 · 0 评论 -
SQL逻辑查询处理
<br /><br />自己看书的一个读书笔记,把自己感觉有用记录一下,方便以后查阅,与大家分享一下。<br />《MS SQL Server2005 技术内幕—T-SQL查询》读书笔记一:SQL逻辑查询处理<br /> <br />如下代码清单:<br />(8) SELECT (9) DISTINCT (11) <TOP_specification> <select_list><br />(1) FROM <left_table><br />(3)原创 2011-03-31 16:49:00 · 664 阅读 · 0 评论 -
数据库设计中的14个实用技巧
<br />下述十四个技巧,是许多人在大量的数据库分析与设计实践中,逐步总结出来的。对于这些经验的运用,读者不能生帮硬套,死记硬背,而要消化理解,实事求是,灵活掌握。并逐步做到:在应用中发展,在发展中应用。<br /> 1. 原始单据与实体之间的关系<br /> 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确转载 2011-04-06 11:30:00 · 640 阅读 · 0 评论 -
SQL Server SQL高级查询语句小结
Ø 基本常用查询 --select select * from student; --all 查询所有 select all sex from student; --distinct 过滤重复 select distinct sex from studen原创 2011-08-30 18:09:58 · 1778 阅读 · 0 评论 -
数据库集群的分类和各大商业数据库上的应用
一般来讲,数据库集群软件根据侧重的方向和试图解决的问题划分为三大类:负载均衡集群(Load balance cluster,)侧重于数据库的横向扩展,提升数据库的性能;高可用性集群(High availability cluster,HAC)侧重保证数据库应用持续不断;高安全性集原创 2011-08-30 10:54:10 · 1429 阅读 · 0 评论 -
数据库集群概述
数据库集群技术是将多台服务器联合起来组成集群来实现综合性能优于单个大型服务器的技术,这种技术不但能满足应用的需要,而且大幅度地节约了投资成本,使用数据库集群主要有以下原因:一、伴随着企业的成长,在业务量提高的同时,数据库的访问量和数据量快速增长,其处理能力和计算强度也相应原创 2011-08-30 10:57:25 · 870 阅读 · 0 评论 -
数据库集群技术分析和比较
<br /> <br />一、引言<br /> <br />数据库是用来保存计算的最终结果的,所以是整个信息系统的最重要组成部分。在许多人看来,当前的数据库技术已经可以说是非常地成熟了。然而,在满足不断增长的联机事务处理应用方面,当前的数据库技术其实还存在不少急迫需要解决的技术问题。<br /> <br />对于所有的数据库而言,除了记录正确的处理结果之外,它们都面临着四方面的挑战:如何提高处理速度,数据可用性、数据安全性和数据集可扩性,也就是说,如何使当前的数据库具有这四方面的可伸缩性,使客户能同时得到更转载 2011-04-19 15:00:00 · 1524 阅读 · 0 评论 -
SQL 生成随机数的基本方法
<br /><br />在SQL server中,有个随机函数rand() <br /> <br />在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558,像这样的小数在实际应用中用得不多,一般要取随机数都会取随机整数。那就看下面的两种随机取整数的方法: <br />方法1、<br />A:select floor(rand()*N) ---生成的数是这样的:12.0 <br />B:select cast( floor(rand原创 2011-04-13 14:38:00 · 4352 阅读 · 0 评论 -
如何执行SQL脚本随机在用户表中生成N条记录
<br /><br />如何执行SQL脚本随机在用户表中生成N条记录?表结构:用户名,密码,二级密码,昵称,邮箱,性别,电话号码,积分。其中用户名,密码,二级密码和昵称是必填的。昵称最好能是汉字。类型是VARCHAR30的。SELECT 用户名 = 'U' + RIGHT('000000' + CAST(n AS varchar(10)),6), 密码 = HASHBYTES('md5',CAST(n AS varchar(10))), 二级密码 = HASHBYTES('md原创 2011-04-13 14:36:00 · 1049 阅读 · 0 评论 -
oracle 检查被锁的表及解锁
<br />处理方法一 :<br /><br />检查那个表被锁<br />select sess.sid,sess.serial#, lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_mode<br />from v$locked_object lo,dba_objects ao,v$session sess<br />where ao.object_id = lo.object_id<br />and lo.session_id =转载 2011-04-11 17:34:00 · 730 阅读 · 0 评论 -
Oracle维护常用SQL语句
1、查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name; 2、查看表空间物理文件的名称及大小 select tablespace_name, file_id,转载 2011-04-11 17:32:00 · 751 阅读 · 0 评论 -
详细讲解大型数据库的设计原则与开发技巧
<br /><br />目前,计算机技术已经广泛地应用于国民经济的各个领域当中,在计算机硬件不断微型化的同时,应用系统也逐渐向着复杂化、大型化的方向发展。数据库是整个系统的核心,它的设计直接关系系统执行的效率和系统的稳定性。因此在软件系统开发中,数据库设计应遵循必要的数据库范式理论,以减少冗余、保证数据的完整性与正确性。只有在合适的数据库产品上设计出合理的数据库模型,才能降低整个系统的编程和维护难度,提高系统的实际运行效率。虽然对于小项目或中等规模的项目开发人员可以很容易地利用范式理论设计出一套符合要求的转载 2011-04-07 16:07:00 · 648 阅读 · 0 评论 -
如何才能让你的SQL运行得更快
<br />很多人在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。 <br /><br />笔者在工作实践中发现,不良的SQL往往来自于不恰当的索引设计、不充份的连接条件和不可优化的where子句。 <br /><br />在对它们进行适当的优化后,其运行速度有了明显地提高! <br /><br />下面我将从这三个方面分别进行总结: <br转载 2011-04-07 14:52:00 · 530 阅读 · 0 评论 -
数据库设计系列5---关系建模
<br />标示了数据库系统的实体之后,下一步骤就是标示实体之间的关系,以及存在于关系之上的约束。这种约束的例子包括:一个分公司必须有多名会员,每个分公司都必须有员工,关系上的约束类型称为多样性。多样性的定义为:一个实体中可能和相关实体的一个存在关联的实体事件的数目。 最常用的关系是度为2的二元关系,二元关系上的多样性约束一般分为一对一,一对多,多对多三种。使用以下的业务规则来考查这三种类型的关系,一名员工管理一个分公司,一个分公司有许多员工,演员出演某部影片。对于每个业务规则,我们说明在没有明转载 2011-04-06 17:52:00 · 897 阅读 · 0 评论 -
Oracle9i中数据仓库的增强及其价值
<br /><br />数据仓库需要从各种不同的数据源取得各种不同的数据,并且把这些巨大数据量的数据转换成对于用户可用的数据,为企业的决策支持提供数据支持。这个过程常常被称为ETL(提取、转换、装载)。提取过程涉及把数据从不同的来源提取出来,比如,一些服务提供商需要从上百个网站提取数据,然后生成用户可用的数据。<br />这个过程中,最最消耗时间的部分是转换和装载数据这两个步骤,在这些步骤中,要根据现有数据指定规则,然后按照这些规则来过滤数据,并且把合格的数据装载到数据仓库里边去。而这个步骤地最大困难就是要转载 2011-04-06 15:14:00 · 551 阅读 · 0 评论 -
数据库设计理论及应用(3)——需求分析及数据流图
<br /><br />图4.1 数据流图图元<br /> <br />接口:用直角矩形表示。这里接口可以是与其它信息系统的接口,也可以是角色(人机接口)。<br />l 进程:一般用椭圆表示,但Visio中用圆角矩形表示,可能是考虑椭圆中可以容纳的字比较少的原因。数据流图中的矩形一般表示一个功能模块或一个过程,对应一个或一组动作。<br />l 数据存储:用右边开口的矩形表示,表示数据库中存储的对象。另外在数据流图中,如果一个存储过程在同一个图中出现多次(主要是防止画的线交转载 2011-04-08 10:01:00 · 2124 阅读 · 0 评论 -
数据流图-2(分层数据流图)
<br /><br />对于比较复杂的实际问题,在数据流图上常常出现十几个乃至几十个、上百个加工,这样的数据流图看起来很不清楚。采用层次结构的数据流图则能很好地解决这个问题。<br />如图中的系统S<br /><br />图1.5 系统加工数据流图<br />它的输入输出反映了系统与外界环境的关系或接口,仅用这个图是不能表明数据的加工要求的,需要进一步细化。如果S可以分解成三个子系统S1、S2、S3,则可画出它们加工及其相关的数据流。子系统S1又可以进一步细化为S1.1、S1.2、S1.3,等等,如图1.转载 2011-04-08 09:37:00 · 15899 阅读 · 0 评论 -
数据库设计方法、规范与技巧
<br />一、数据库设计过程<br />数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。<br />数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个dbms产品的概念模式(信息世界模型),用e-r图来描述。在逻辑设计阶段将e-r图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考转载 2011-04-06 17:56:00 · 817 阅读 · 0 评论 -
Oracle常见错误代码的分析与解决
<br /><br />在使用ORACLE的过程过,我们会经常遇到一些ORACLE产生的错误,对于初学者而言,这些错误可能有点模糊,而且可能一时不知怎么去处理产生的这些错误,本人就使用中出现比较频繁的错误代码一一做出分析,希望能够帮助你找到一个合理解决这些错误的方法,同时也希望你能够提出你的不同看法。毕竟作为一种交流的手段,个人意见难免过于偏颇,而且也必定存在着不足,出错之处在所难免。写这篇文章的目的就是想通过相互之间的交流共同促进,共同进步。< src="/script/ad.js" type="te转载 2011-04-06 15:42:00 · 567 阅读 · 0 评论 -
Oracle锁简介
<br />ORACLE数据库是现今数据库领域应用最广泛的,同时它也是一个庞大的系统,全面了解它、玩转它不但需要一定的理论知识,更需要开发经验与工程经验。本人是ORACLE一爱好者,以下是本人对ORACLE锁的一些经验,希望能与大家共同分享。 <br />预备知识:DDL(DATABASE DEFINITION LANGUAGE):数据库定义语言,如create table、drop table..... DML(DATABASE MODIFICATION LANGUAGE):数据库修改语言,如ins转载 2011-04-06 15:02:00 · 433 阅读 · 0 评论 -
MS SQL Update锁介绍。
<br /><br />UPDATE 锁并不是一种单独的锁类型,倒是有点像是SHARED和EXCLUSIVE锁的混合。并且可能与你认为的不同,UPDATE 锁不是由UPDATE操作获取的。 当SQL Server执行一个数据修改操作,但是需要首先执行一个检索来查找需要修改的资源时,事务会获取这种类型的锁。<br />当SQL Server搜索时,它不需要获取EXCLUSIVE锁,只有在找到要更改数据时,才需要EXCLUSIVE锁。通常情况下,如果SQL Server进程只是搜索数据,它会在所访问到的每个资源原创 2011-01-18 10:54:00 · 1762 阅读 · 0 评论 -
行列互转 Pivot 和 Unpivot
<br />Pivot<br />如您所知,关系表是表格化的,即,它们以列-值对的形式出现<br />CUST_ID STATE_CODE TIMES_PURCHASED<br />------- ---------- ---------------<br /> 1 CT 1<br /> 2 NY 10<br /> 3 NJ 2<br />原创 2011-01-18 16:01:00 · 661 阅读 · 0 评论 -
SQL SERVER特殊时间格式使用总结
<br /><br />1. 显示本月第一天<br />SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0)<br />select convert(datetime,convert(varchar(8),getdate(),<br />120)+'01',120)<br />2. 显示本月最后一天<br />select dateadd(day,-1,convert(datetime,convert<br />(varchar(8),dateadd(month,1,g原创 2011-01-18 10:56:00 · 527 阅读 · 0 评论