数据库
zhongguoren666
本人迄今已有近七年的工作经验,一直从事软件开发,曾涉彩票、教育、铁路、农业、门户网站等多个行业,个人认为最精深的要数彩票行业了。本人开发过程中最擅长的要数C 和DELPHI,当然,在SOCKET、COM 、WebServic、数据库、多线程、线程同步、线程池、数据库连接池、串口通讯、UI设计、进程间通信等等技术也有较深入的学习。本人自认充满活力、拥有激情、爱好学习、充满自信。衷心希望能提供大家一些有用帮助与建议!
展开
-
《Microsoft Sql server 2008 Internals》读书笔记--第六章Indexes:Internals and Management(1)
《Microsoft Sql server 2008 Internals》索引目录:《Microsoft Sql server 2008 Internals》读书笔记--目录索引 在第五章主要学习了table的内部存储结构,第七章《Special storage》中将继续深入学习存储机制,那将是本书最难理解的一章。第六章主要介绍index的基础知识,第八章是《query O原创 2014-08-06 14:30:33 · 1140 阅读 · 0 评论 -
剖析SQL Server 2005查询通知之基础篇(3)
六. 你的第一个通知 下面,让我们开始使用SqlDependency来分析一下所有上面这些是如何协同工作的。首先,我们创建一个类NotificationTest来存取你的数据。在这个类中,还要创建一个典型的函数以便从Pubs数据库的Authors表中查询一些数据并返回一个SqlDataReader。Imports System.Data.SqlClient原创 2011-11-25 11:52:44 · 877 阅读 · 0 评论 -
剖析SQL Server 2005查询通知之基础篇(1)
作者:朱先忠编译 摘要 在本系列文章中,我们将深入探讨如何把.NET 2.0和SQL Server 2005的查询通知特征联合起来,以便通知应用程序何时关键数据发生变化进而达到消除反复查询数据库的目的。 一. 引言 数据库应用程序的典型问题之一是更新陈旧的数据。 设想有一个典型的显示产品及其分类的电子商务网站。一个供应商的产品列表很可能并不经常发生变化,而其分类原创 2011-11-25 11:51:01 · 1074 阅读 · 0 评论 -
深入浅出SQL之左连接、右连接和全连接
內连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包含进来。为更好的理解这个概念,我们介绍两个表作演示。苏格兰议会中的政党表(party)和议员表(msp)。party(Code,Name,Leader)Code: 政党代码Name: 政党名称Leader: 政党领袖msp(Name,Party,Constituency)Name: 议员名Pa原创 2011-11-07 13:28:44 · 1102 阅读 · 0 评论 -
SQL连接方式(左连接、右连接、全连接)
1.内连接、左连接、右连接、全连接介绍 內连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包含进来。内部连接是两个表中都必须有连接字段的对应值的记录,数据才能检索出来。 左连接和右连接都是外部连接,也就是区别于内部连接,它对不满足连接条件的行并不是象内部连接一样将数据完全过滤掉,而是保留一部分数据,行数不会减少。 左连接是只要左边表中有记录,数据就能检索出原创 2011-11-07 13:25:23 · 4913 阅读 · 1 评论 -
SQL查询及删除重复记录的方法
SQL查询及删除重复记录的方法1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)2、删除表中多余的重复记录,重复记录是根据单个字段原创 2011-11-10 16:09:17 · 1812 阅读 · 0 评论 -
SQL 并发的问题(锁的使用)
--设tb(A,B,C) create table #tb(A varchar(2),B varchar(2),C varchar(2)) insert into #tb select 'a1','b1','c1' union all select 'a2','b2','c2' union原创 2011-11-10 16:20:51 · 869 阅读 · 0 评论 -
ADOQuery的速度优化
今天终于把纠缠了几天的问题改完了,说到底只是一个很小的问题,就是ADOQuery的一个小属性。 把控件DBGridEh的一列的checkbox设为true,将其绑定DataSourceA和DOQuery。用Button添加了一个事件,用来取消对checkbox的操作:ADOQuery.CancelBatch();可是只能取消最后一步的操作。检查了很长时间才发现在DBGridEh原创 2011-11-10 14:08:58 · 4243 阅读 · 0 评论 -
数据库桌面
数据库桌面(DataBase Desktop)允许用户创建、查看、排序、修改及查询一系列的Paradox、dBASE及SQL格式的数据表格,选用Edit|Paste Link可以用DDE(动态数据交换Dynamic Data Exchange)与在其它应用程序中的数据建立激活动连接。 一、数据库桌面(DataBase Desktop)新特点 除了改为新的Windows原创 2011-11-11 11:57:39 · 1536 阅读 · 0 评论 -
SQL truncate 、delete与drop区别
相同点:1.truncate和不带where子句的delete、以及drop都会删除表内的数据。 2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点:1. truncate 和 delete 只删除数据不删除表的结构(定义)drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index);原创 2011-11-25 14:26:26 · 981 阅读 · 0 评论 -
剖析SQL Server 2005查询通知之基础篇(2)
四. 为使用查询通知作准备 因为默认情况下SQL Server 2005处于高度安全的状态,所以你需要“打开”一些功能才能使用查询通知。首先,你要使用的每一个数据库都需要启动Service Broker功能。为此,你可以在T-SQL中使用如下命令实现:USE mydatabaseALTER DATABASE mydb SET ENABLE_BROKER原创 2011-11-25 11:52:05 · 980 阅读 · 0 评论 -
千万级别数据表,单列索引和多列索引性能对比
由于Contact表存在多个(单列)索引,造成Delete,update,insert操作时需要花费大量的时间删除索引和重建索引。通过把多个(单列)索引合并成一个(多列)索引后,测试得出Delete,update,insert操作时需要花费的时间大大缩短。原创 2011-10-13 14:41:15 · 1940 阅读 · 0 评论 -
分享SQL2005分区实现教程
本月技术会议专题为数据库分区( SQL Server Partitioning ),主要讲述为什么要分区,在什么情况下需要对数据进行分区,如何进行分区,分区表管理等内容。一、 摘要 ◆ 分区基础知识 u SQL Server2005 分区 u 技术讨原创 2011-10-13 15:05:29 · 796 阅读 · 0 评论 -
关系型数据库性能优化总结
对于web应用开发,多数性能瓶颈均出现在数据库上,除了采用分布式架构或云处理(大公司基本上都是),更重要的是平时程序设计时要遵照一些规则,从根本上提高系统的性能,以下总结了一些常用的规则方法,仅供参考,欢迎跟帖补充。。。 1、 把数据、日志、索引放到不同的I/O设备上,增加读取原创 2011-10-13 15:20:00 · 855 阅读 · 0 评论 -
SQL Server2005数据库查询中使用CTE
转自:http://www.615i.cn/article.asp?id=183通用表表达式(CTEs)是SQL Server 2005的一项新功能。它们类似于alias(如在Select T1.* FROM MyTable T1中),不过功能更为强大。本质上,CTE是一个临转载 2011-10-08 17:47:03 · 741 阅读 · 0 评论 -
利用SQL SERVER2005发送邮件
原文:http://sqlserver2005.itpub.net/post/22359/210413早在sql server 2000中可以通过sql mail给指定的邮件地址发邮件。SQL SERVER 2005中我们仍外可以用sql server2000中的SQLMAIl功能发送邮件,但SQL SERVER2005中又提供一个新数据库邮件功能也可以发送和接收邮件。这里以数据库原创 2011-11-15 09:55:42 · 1394 阅读 · 0 评论 -
搜索字符或者字符串_CHARINDEX函数
在SQL中,CHARINDEX函数常常用来在一段字符中搜索字符或者字符串。定义 返回字符串中指定表达式的起始位置。相关知识 语法 CHARINDEX ( expression1 , expression2 [ , start_location ] ) 参数 expression1 一个表达式,其中包含要寻原创 2011-11-15 09:43:58 · 1560 阅读 · 0 评论 -
分享一些数据库使用的心得
1、应用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数;通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担;能够分开的操作尽量分开处理,提高每次的响应速度;在数据窗口使用SQL时,尽量把使用的索引放在选择的首列;算法的结构尽量简单;在查询时,不要过多地使用通配符如SELECT * FROM T1语句,要用到几列就选择几列如:SELECT COL1,CO原创 2011-11-15 10:12:02 · 2194 阅读 · 3 评论 -
使用SQL Mail收发和自动处理邮件中的扩展存储过程简介
正确配置和使用SQL mail 使用SQL Mail收发和自动处理邮件中的扩展存储过程简介SQL SERVER提供了通过EXCHANGE或OUTLOOK收发邮件的扩展存储过程,下面将这几个过程简单的介绍一下。 一、启动SQL Mail xp_startmail @user,@password @user和@password都是可选的 也可打开Ent原创 2011-11-15 09:59:08 · 1232 阅读 · 0 评论 -
SQL Server 2008-建立分区表(Table Partition)
数据库结构和索引的是否合理在很大程度上影响了数据库的性能,但是随着数据库信息负载的增大,对数据库的性能也发生了很大的影响。可能我们的数据库在一开始有着很高的性能,但是随着数据存储量的急速增长—例如订单数据—数据的性能也受到了极大的影响,一个很明显的结果就是查询的反应会非常慢。在这个时候,除了你可以优化索引及查询外,你还可以做什么?建立分区表(Table Partition)可以在某些场合下提高数据原创 2011-12-20 13:50:30 · 984 阅读 · 0 评论 -
Group by与having理解
Group by与having理解注意:select 后的字段,必须要么包含在group by中,要么包含在having 后的聚合函数里。1. GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使用group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面(重要)例如,有如下数据库原创 2012-02-27 09:55:06 · 952 阅读 · 0 评论 -
三级模式结构:外模式、模式和内模式
三级模式结构:外模式、模式和内模式.一、模式(Schema) 定义:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。 理解: ① 一个数据库只有一个模式; ② 是数据库数据在逻辑级上的视图; ③ 数据库模式以某一种数据模型为基础; ④ 定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而原创 2011-07-29 17:59:39 · 1918 阅读 · 0 评论 -
PowerDesigner 教程篇 - 概念数据模型
一、概念数据模型概述 概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。 通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实世界中的客观对象抽象为实体(Entity)和联系 (Relation原创 2012-03-15 14:18:09 · 1318 阅读 · 0 评论 -
EXISTS 和 NOT EXISTS
exists (sql 返回结果集为真)not exists (sql 不返回结果集为真) 如下: 表A ID NAME 1 A1 2 A2 3 A3 表B ID AID NAME 1 1 B1 2 2 B2 3 2 B3 表A和表B是1对多的关系 A.ID => B.AID SELECT ID,NAME FR原创 2012-03-21 13:39:15 · 840 阅读 · 0 评论 -
PostgreSQL
PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、多版本并发控制。同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言。并且,因为许原创 2012-03-21 17:37:59 · 904 阅读 · 0 评论 -
使用CALL和EXEC調用存儲過程的區別
转自:http://blog.csdn.net/ngx20080110/article/details/5883471使用CALL調用存儲過程,不能使用名稱參數,同時也會忽略未處理的ORA-01403:NO DATA FOUND錯誤。而使用EXEC的話,可以使用名稱參數,同時會拋出未處理的ORA-01403,使用BEGIN ... END效果與EXEC相同。例子如下 創建一個簡單的存儲原创 2012-04-26 15:41:35 · 3007 阅读 · 0 评论 -
NOSQL资料学习
NoSQL的分类 NoSQL仅仅是一个概念,NoSQL数据库根据数据的存储模型和特点分为很多种类。 类型部分代表特点列存储HbaseCassandraHypertable顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非原创 2012-12-24 09:29:14 · 2688 阅读 · 0 评论 -
从性能的角度谈SQL Server聚集索引键的选择
简介 在SQL Server中,数据是按页进行存放的。而为表加上聚集索引后,SQL Server对于数据的查找就是按照聚集索引的列作为关键字进行了。因此对于聚集索引的选择对性能的影响就变得十分重要了。本文从旨在从性能的角度来谈聚集索引的选择,但这仅仅是从性能方面考虑。对于有特殊业务要求的表,则需要按实际情况进行选择。 聚集索引所在的列或列的组合最好是唯一的原创 2014-07-30 10:07:01 · 4170 阅读 · 0 评论 -
SQL Server数据导入导出工具BCP详解及xp_cmdshell
SQL Server数据导入导出工具BCP详解及xp_cmdshell 开发者在线 Builder.com.cn 本文关键词: SQL Server 导入导出 bcp exec xp_cmdshellBCP是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据。BCP可以将数据库的表或视图直接原创 2011-12-14 10:12:01 · 13361 阅读 · 1 评论 -
海量数据处理专题(五)——堆
【什么是堆】概念:堆是一种特殊的二叉树,具备以下两种性质1)每个节点的值都大于(或者都小于,称为最小堆)其子节点的值2)树是完全平衡的,并且最后一层的树叶都在最左边这样就定义了一个最大堆。如下图用一个数组来表示堆:那么下面介绍二叉堆:二叉堆是一种完全二叉树,其任意子树的左右节点(如果有的话)的键值一定比根节点大,上图其实就是一个二叉堆。你一定发觉了,最小的一原创 2011-12-22 11:37:14 · 805 阅读 · 0 评论 -
海量数据处理专题(七)——数据库索引及优化
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。数据库索引什么是索引数据库索引好比是一本书前面的目录,能加快数据库的查询速度。例如这样一个查询:select * from table1 where id=44。如果没有索引,必须遍历整个表,直到ID等于44的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),原创 2011-12-22 11:39:27 · 1066 阅读 · 0 评论 -
海量数据处理专题(一)——开篇
大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google 腾讯 这样的一些涉及到海量数据的公司经常会问到。下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题。下面的一些问题基本直接来源于公司的面试笔试题目,方法不一定最优,如果你有更好的处理方法,欢迎与我讨论。原创 2011-12-22 11:31:42 · 1937 阅读 · 0 评论 -
海量数据处理专题(四)——Bit-map
【什么是Bit-map】所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。如果说了这么多还没明白什么是Bit-map,那么我们来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用Bit-map的方法来达原创 2011-12-22 11:36:39 · 892 阅读 · 0 评论 -
海量数据处理专题(八)——倒排索引(搜索引擎之基石)
引言:在信息大爆炸的今天,有了搜索引擎的帮助,使得我们能够快速,便捷的找到所求。提到搜索引擎,就不得不说VSM模型,说到VSM,就不得不聊倒排索引。可以毫不夸张的讲,倒排索引是搜索引擎的基石。VSM检索模型VSM全称是Vector Space Model(向量空间模型),是IR(Information Retrieval信息检索)模型中的一种,由于其简单,直观,高效,所以被原创 2011-12-22 11:40:07 · 1382 阅读 · 0 评论 -
实战手记:让百万级数据瞬间导入SQL Server
想必每个DBA都喜欢挑战数据导入时间,用时越短工作效率越高,也充分的能够证明自己的实力。实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本文将向大家推荐一个挑战4秒极限让百万级数据瞬间导入SQL Server实验案例。本实验将使用5中方法完成这个过程,并详细记录各种方法所耗费的时间。所用到工具为Visual Studio 2008和SQL Server 2000、SQL S原创 2011-12-14 09:38:58 · 3863 阅读 · 2 评论 -
海量数据处理专题(三)——Hash
【什么是Hash】Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。原创 2011-12-22 11:35:45 · 1008 阅读 · 0 评论 -
海量数据处理专题(六)——双层桶划分
【什么是双层桶】事实上,与其说双层桶划分是一种数据结构,不如说它是一种算法设计思想。面对一堆大量的数据我们无法处理的时候,我们可以将其分成一个个小的单元,然后根据一定的策略来处理这些小单元,从而达到目的。【适用范围】第k大,中位数,不重复或重复的数字【基本原理及要点】因为元素范围很大,不能利用直接寻址表,所以通过多次划分,逐步确定范围,然后最后在一个可以接受的范围内进行原创 2011-12-22 11:37:50 · 1390 阅读 · 0 评论 -
海量数据处理专题(二)——Bloom Filter
【什么是Bloom Filter】Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter不适合那些“零错误”的应用场合。原创 2011-12-22 11:33:07 · 1054 阅读 · 0 评论 -
SQL2005 索引优化
聚集索引 , 表中存储的数据按照索引的顺序存储 , 检索效率比普通索引高 , 但对数据新增 / 修改 / 删除的影响比较大 非聚集索引 , 不影响表中的数据存储顺序 , 检索效率比聚集索引低 , 对数据新增 / 修改 / 删除的影响很小 如何让你的 SQL 运行得更快原创 2011-10-13 15:33:57 · 813 阅读 · 0 评论 -
SQL2005合理的索引设计
合理的索引有助于提升系统性能和可用程度,我工作中见过一个设计错误的索引导致sqlserver将一台4cpu的服务器资源用尽。 权威参考参见msdn:http://msdn.microsoft.com/zh-cn/library/ms191195.aspx 1、评估索引本原创 2011-10-13 15:38:40 · 899 阅读 · 0 评论