随笔分类 - SQL Server
1
摘要:在ASP中可以通过三种方式访问数据库:1、IDC(Internet Database Connector)方式;2、ADO(ActiveX Data Objects)方式;3、RDS(Remote Data Service)方式。这三种访问方式对数据库的访问都是由Internet Information Server完成的。通过Web浏览器用HTTP协议向IIS(Internet信息服务器)发送请求,IIS执行对数据库的访问,并返回一个HTML格式的文档响应。下面分别说明:1、IDC(Internet数据库接口)IDC是一个传统的数据库查询工具,用来定义和执行数据库查询的SQL命令,并向浏览器
阅读全文
摘要:1.a. 并集UNION SELECT column1, column2 FROM table1 UNION SELECT column1, column2 FROM table2b. 交集JOIN SELECT * FROM table1 AS a JOIN table2 b ON a.name=b.namec. 差集NOT IN SELECT * FROM table1 WHERE name NOT IN(SELECT name FROM table2)d. 笛卡尔积 SELECT * FROM table1 CROSS JOIN table2 与 SELECT * FROM table1
阅读全文
摘要:很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解。比如:select * from table1 where name='zhangsan' and tID > 10000和执行:select * from table1 where tID > 10000 and name='zhangsan' 一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那么后一句仅仅从表的10000条以后的记录中查找就行了;而前一句则
阅读全文
摘要:什么是索引拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K 。为了加快查找的速度,汉语字(词)典一般都有按拼音、笔画、偏旁部首等排序的目录(索引),我们可以选择按拼音或笔画查找方式,快速查找到需要的字(词)。同理,SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度。•SQL Server中的数据也是按页( 4KB )存放•索引:是SQL Server编排数据的内部方法。它为SQL Server提供一种方法来编排查询数据 。•索引页:数据库中存储索引的数据页;索引页类似于汉语字
阅读全文
摘要:SQLServer2008 当出现日志文件过大时,就可能需要缩小或删除日志文件,SQLServer已经提供了相关功能,操作为:右击需缩小的数据库 >> 选择“属性”菜单 >> 点击左边选择页列表的“文件”项 >> 修改字志文件的初始化大小和长度限制。根据实际需要可以设置初始化大小和长度限制,需注意的是“长度限制”必须比“初始化大小”大,把初始化大设置成想要的大小,日志文件就缩小了。如果不想使用日志文件可以把长度限制页面里的“启用自动增长”复选框去掉,再把初始大小设置为1就行了。
阅读全文
摘要:SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源 9、返回了不必要的行和列 10、查询语句不好,没有优化 可以通过以下方法来优化查询 : ...
阅读全文
摘要:由于数据库日志增长被设置为“无限制”,所以时间一长日志文件必然会很大,一个400G的数据库居然有600G的LOG文件,严重占用了磁盘空间。由于主要是做OLAP,所以数据库本身不会有大变动,所以日志也就没有多少作用了,因此想办法把数据库日志文件收缩到很小或者删除。网上搜索相关解决方案后,得到的答案丰富多彩,但是真正管用的方案并不多,这里分享一个csdn上找到的方法。这个方法讲述了SQL Server 2005和SQL Server 2008在收缩数据库日志的不同之处,颇有帮助。同时,该方法的效率很高,收缩600G的日志到10M只花了不到30秒。适用于SQL Server 2005的方法Backu
阅读全文
摘要:在SQL Server 2008下,网上以前流行的截断日志并收缩文件的方法不适合了,报语法错误。同时因为我的数据库日志增长非常快,大概每天在1G以上,因此必须对其进行收缩。经过在系统上的测试,感觉用SQL SERVER的维护计划更可行,现将操作方式简介如下:注:下面的说明中也提到了使用差异备份,因为数据库文件增长也非常快,因此此处也稍作说明。关注收缩数据库日志文件的可以忽略此部分内容。1、创建维护计划:2、创建子计划a、完整备份,每周一次b、差异备份,每天一次,或每天多次c、日志备份,每天一次d、收缩数据库e、删除备份文件,删除四周以前的备份文件,每天执行f、清除日志备份文件,每天执行3、关于
阅读全文
摘要:DTS(数据转换服务)包方便了异源数据的传送整合,它跟数据库是“平级”的,于是当我们需要将包由一台服务器转移或复制到另一台服务器时,就不能使用导入导出功能,也不能使用数据库备份。也就是说 DTS 包是用于导入导出数据和数据对象的,可是现在轮到它自己被导入导出了,该怎么办。一、两台服务器间可以直接进行 SQL Server 通信选中要转移或复制的包,选择“设计包”,再在菜单中选择“另存为”,位置选择“SQL Server”,选择目的服务器,输入相应用户名和密码,即可实现导入导出。二、通信不可用选中要转移或复制的包,选择“设计包”,再在菜单中选择“另存为”,位置选择“结构化存储文件”,然后选择路径
阅读全文
摘要:对于“无法用TCP/IP协议和远端SQL Server数据库连接”问题首先,需要确定您的SQL Server版本,以及它安装了哪些补丁,这很重要。如果补丁没有安装或者没有安装最新的ServicePack,请先安装。然后,你可以试试看telnet SqlServerName 1433,看是否可以连接上。1433是SQl Server用TCP/IP协议的默认端口。你如果连这个端口都无法连接上,那就应该查查网络配置了。第3,您得到的错误描述是“[TCP/IP Sockets]一般性网络错误”,那么如果换成用命名管道连接呢,能不能通过呢?第4,如果您的程序用连接字符串来连接数据库时,用数据库服务器的I
阅读全文
摘要:CONVERT函数[数据类型转换]--------------------------------------------------------------------------------功能返回转换成提供的数据类型的表达式。语法CONVERT(datatype,expression[,format-style])参数datatype表达式将转换成的数据类型。expression要转换的表达式。format-style对于将字符串转换为日期或时间数据类型以及相反的转换过程,format-style是描述要使用的日期格式字符串的样式代码。format-style参数的值具有下列含义:不含世
阅读全文
摘要:函数参数/功能GetDate( )返回系统目前的日期与时间DateDiff (interval,date1,date2)以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1DateAdd (interval,number,date)以interval指定的方式,加上number之后的日期DatePart (interval,date)返回日期date中,interval指定部分所对应的整数值DateName (interval,date)返回日期date中,interval指定部分所对应的字符串名称参数 interval的设定值如下:值缩 写(
阅读全文
摘要:数据文件命名采用系统名+_+文件类型,比如系统名为kupage,则数据库文件命名为kupage_database.mdf,有的数据库文件有多个,比如SQL Server就有2个,一个是数据库文件,另一个是日志文件,那么他们的文件命名分别为kupage_database.mdf,kupage_log.log。文件名全部采用小写。 数据库表命名规范,表名长度不能超过30个字符,表名中含有单词全部采用单数形式,单词首写字母要大写,多个单词间不用任何连接符号。若库中有多个系统,表名采用系统名称+单词或多个单词,系统名是开发系统的缩写,系统名称全部采用小写英文字符,如bbsTitle,bbsForu..
阅读全文
摘要:通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将教你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。 在使用本文中的例子之前,你必须注意以下的问题。大部分可能不是所有例子在不同的机器上执行的结果可能不一样,这完全由哪一天是一个星期的第一天这个设置决定。第一天(DATEFIRST)设定决定了你的系统使用哪一天作为一周的第一天。所有以下的例子都是以星期天作为一..
阅读全文
摘要:sqlDependency提供了这样一种能力:当被监测的数据库中的数据发生变化时,SqlDependency会自动触发OnChange事件来通知应用程序,从而达到让系统自动更新数据(或缓存)的目的.快速上手可参见园友的下列文章http://www.csharpwin.com/dotnetspace/8536r2178.shtml .NET 2.0 SqlDependency快速上手指南http://www.csharpwin.com/dotnetspace/9563r4530.shtml采用SQLServer2005 Broker和SqlDependency类来提供数据更改通知(原创)这里参考
阅读全文
摘要:在我们的数据库设计中,不可逃避的就是数据库表的主键,可能有很多朋友没有深入思考过,主键的设计对整个数据库的设计影响很大,因此我们不得不要重视起来。 主键的必要性: 有些朋友可能不提倡数据库表必须要主键,但在我的思考中,觉得每个表都应该具有主键,不管是单主键还是双主键,主键的存在就代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,本记录的修改与删除,当我们没有主键时,这些操作会变的非常麻烦。 主键的无意义性: 我强调主键不应该具有实际的意义,这可能对于一些朋友来说不太认同,比如订单表吧,会有“订单编号”字段,而这个字段呢在业务实际中本身就是应该具有唯一性,具有
阅读全文
摘要:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0605jiangt/一、数据库设计过程数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后
阅读全文
摘要:数据库设计5步骤 1.确定entities及relationshipsa)设计宏观行为。你用此数据库来做什么?比如,希望管理雇员的信息。b)确定entities。对于一系列的行为,确定所管理信息所涉及到的主题范围。这将变成table。比如,雇用员工,指定具体部门,确定技能等级。c)确定relationships。看着行为,确定tables之间有何种关系。比如,在部门与雇员之间存在一种关系。给这种关系命名。d)细化行为。你从宏观行为开始,现在仔细检查这些行为,看有哪些行为能转为微观行为。比如,管理雇员的信息可细化为:● 增加新员工● 修改存在员工信息● 删除调走的员工e)确定业务规则。
阅读全文
摘要:数据库设计的过程(六个阶段) 1.需求分析阶段 准确了解与分析用户需求(包括数据与处理) 是整个设计过程的基础,是最困难、最耗费时间的一步 2.概念结构设计阶段 是整个数据库设计的关键 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型 3.逻辑结构设计阶段 将概念结构转换为某个DBMS所支持的数据模型 对其进行优化 4.数据库物理设计阶段 为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法) 5.数据库实施阶段 运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果 建立数据库,编制与...
阅读全文
摘要:SQL2005:打开SQL2005的配置工具-->SQL Server 2005外围应用配置器-->服务和连接的外围应用配置器 -->Database Engine -->远程连接,选择本地连接和远程连接并选上同时使用Tcp/Ip和named pipes.SQL2008:打开SQL Server Management Studio-->在左边[对象资源管理器]中选择第一项(主数据库引擎)-->右键-->方面-->在方面的下拉列表中选择[外围应用配置器]-->将RemoteDacEnable置为True.
阅读全文
1