随笔分类 -  SQL

摘要:首先说明下,ASP.NET MVC系列还在龟速翻译中。工作好多年,基础知识甚是薄弱,决定以后在coding(cv操作)的时候尽量多google下,然后总结下来,目的有三: 1. 加深自己的理解,如果园看懂了并且没有误导人,那么我就理解对了。 2. 以备自己遇到问题之后还要google,直接看看自... 阅读全文
posted @ 2014-04-16 14:03 CodingStar 阅读(737) 评论(0) 推荐(0) 编辑
摘要:阅读导航提高性能索引 B-tree 索引 Hash 索引 其他类型指针索引百利无一害索引对于接触过数据库的人,都不会很陌生,但是说实话,也不一定很熟悉。先来介绍下索引的优点。提高性能现在有一个数据库表[Words],有[WordID],[WordPage],[[WordName],[WordPron... 阅读全文
posted @ 2013-07-15 06:37 CodingStar 阅读(3813) 评论(6) 推荐(8) 编辑
摘要:http://m.oschina.net/blog/10314一、引言对数据库索引的关注从未淡出我的们的讨论,那么数据库索引是什么样的?聚集索引与非聚集索引有什么不同?希望本文对各位同仁有一定的帮助。有不少存疑的地方,诚心希望各位不吝赐教指正,共同进步。[最近首页之争沸沸扬扬,也不知道这个放在这合适么,苦劳?功劳?……]二、B-Tree我们常见的数据库系统,其索引使用的数据结构多是B-Tree或者B+Tree。例如,MsSql使用的是B+Tree,Oracle及Sysbase使用的是B-Tree。所以在最开始,简单地介绍一下B-Tree。B-Tree不同于Binary Tree(二叉树,最多有 阅读全文
posted @ 2013-07-11 23:55 CodingStar 阅读(1006) 评论(0) 推荐(0) 编辑
摘要:阅读导航数据库日期和时间类型相互转换 time ⇌ date time ⇌ smalldatetime time ⇌ datetime time ⇌ datetime2 time ⇌ datetimeoffset date ⇌ smalldatetime date ⇌ datetime date ⇌ datetime2 date ⇌ datetimeoffset smalldatetime ⇌ datetime smalldatetime ⇌ datetime2 smalldatetime ⇌ datetimeoffset datetime ⇌ datetime2 datetime ⇌ dat 阅读全文
posted @ 2013-07-09 17:34 CodingStar 阅读(680) 评论(0) 推荐(0) 编辑
摘要:阅读导航从文件系统中迁移文件到FileTable批量加载文件到FileTable如何批量加载文件到FileTable通过博文[SQLServer大对象]——FileTable初体验,已经可以将文件加载到数据库中,并查看和访问这些文件。将文件加载到 FileTable,可以使用工具xcopy或robocopy,也可以自己编写脚本(如PowerShell)或者应用程序,复制文件到FileTable中。现在说一说文件的迁移。从文件系统中迁移文件到FileTable迁移文件条件 文件存储在文件系统中 在 SQL Server 中元数据的表包含一个指向文件的指针执行前提要将文件迁入到 FileTable 阅读全文
posted @ 2013-07-06 23:04 CodingStar 阅读(1695) 评论(1) 推荐(0) 编辑
摘要:阅读导航启用FILESTREAM设置更改FILESTRAM设置启用数据库非事务性访问级别FileTable在我接触FileTable之前,存储文件都是存储文件的链接和扩展名到数据,其实并没有实际的把文件存储到数据库。FileTable不同于一般的表,他可以存储非结构数据和元数据(如:文件、文档),存... 阅读全文
posted @ 2013-07-05 07:08 CodingStar 阅读(6410) 评论(4) 推荐(4) 编辑
摘要:前面已经介绍三篇关于数据库编码规范的博文,现在来一个收尾篇,在说一下代码时候应该注意的东西1. 不要使用SELECT *,使用SELECT时一定要指定所需要的列。2. 尽量避免使用,如果能够使用IN操作代替就使用他代替。3. 尽量避免使用 > 或 = 语句代替。4. 插入大量数据时,不要使用游标或者应用程序循环,最好使用 INSERT INTO 代替。5. 像到多数流行的开发语言一样,不要使用 GOTO 语句。6. 在使用 ORDER BY 时,要使用列名,不要使用列的序号。7. 在存储过程的开始位置使用:NOCOUNT ON8. 避免使用 TEXT、NTEXT、IMAGESQL Ser 阅读全文
posted @ 2013-07-04 23:57 CodingStar 阅读(1298) 评论(2) 推荐(0) 编辑
摘要:阅读导航SQL关键字代码缩进注释括号空格代码就像家里的各种物品,格式化就好比对家中物品的排放。家中的物品随便怎么放,物品都不会反对,房子也不会介意,但是物品的排放合理、规整,会让家里变得更具有美感。代码也是一样,代码写成什么样子,代码不会反对,计算机也不会介意(除非不能运行),但是毕竟还是会有人来欣赏、维护这些代码,这时候具有很好格式的代码就显得尤为重要了。SQL关键字所有的SQL关键字大写。SELECT,UPDATE,DELETE,INSERT INTO,CRETAE DATABASE,ALTER DATABASE,CREATE TABLE,ALTER TABLE,DROP TABLE,CR 阅读全文
posted @ 2013-07-03 23:38 CodingStar 阅读(1899) 评论(5) 推荐(1) 编辑
摘要:阅读导航主键第三范式非TEXT类型VARCHAR类型默认值数据库是由若干表构成,表是由数据行构成,数据行由若干列组成。由于数据库这样的结构,这就要求我们在构成数据库表时,需要注意一些问题。现在提出一些注意的问题。1. 主键每一个表必须有一个主键列。大多数情况,存在一个命名为ID的列作为主键列直接创建 1: CREATE TABLE Products 2: { 3: [ID] int NOT NULL PRIMARY KEY, 4: [Name] varchar(255) NOT NULL 5: }添加主键约束 1: CREATE TABLE Products... 阅读全文
posted @ 2013-07-02 23:56 CodingStar 阅读(1268) 评论(4) 推荐(2) 编辑
摘要:阅读导航表 Tables、视图 Views存储过程Stored Procedures触发器Triggers索引Indexes主键 Primary Keys外键 Foreign KeysDefaults列 Columns脚本命名一个语句写十遍,居然大部分时候都是不一样的。上网找了一些SQL的开发标准文档,结合项目中的使用,写一些关于自己SQL的开发标准文档。解编码标准就是一套写代码的指南、规则、约定的集合。编码标准应该足够灵活并且不会给开发造成负担。作为一个开发者来说,新接触一个项目,个人认为最重要的是熟悉当前项目的开发标准。这样不仅有利于快速熟悉已有代码和添加新代码,而且对以后的维护也很重要。 阅读全文
posted @ 2013-07-01 23:57 CodingStar 阅读(1817) 评论(12) 推荐(4) 编辑
摘要:阅读导航一、概要二、JOIN分类三、JOIN分类详解一、概要JOIN对于接触过数据库的人,这个词都不陌生,而且很多人很清楚各种JOIN,还有很多人对这个理解也不是很透彻,这次就说说JOIN操作。图片是很容易被接受和理解,所以尝试使用图片来说明一下。二、JOIN分类客官:小二,上JOIN分类!……小二:客官,新鲜出炉的JOIN分类图片来喽。三、JOIN分类详解客官:小二,速速详细道来!小二:现在让小二来给您详细介绍。INNER JOIN:仅仅返回两个表中,匹配列相同的列值,所在行的数据。SELECT * FROM Table1 t1 INNER JOIN Table2 t2 ON t1.Col1 阅读全文
posted @ 2013-06-20 02:22 CodingStar 阅读(17523) 评论(69) 推荐(72) 编辑
摘要:阅读导航1. TVF(表-值行数Table-Valued Functions) a. 创建TVF b. 使用TVF的低性能T-SQL c. 使用临时表代替TVF2. 标量函数3. 替代标量函数 1). 临时表 2). 持久化确定的计算列 3). 使用计划更新工作 a. 创建标量函数 b. 使用临时表替换标量函数 c. 使用持久化确定的计算列 d. 使用计划工作代替标量函数上一篇介绍了关于“临时表、表变量和Union优化”这次转向关注定义函数——也就是表-值函数、标量函数。UDF(用户定义函数,User defined Function)对于集中精力处理业务逻辑很方便,因为可以在UDF中指定一组 阅读全文
posted @ 2013-06-19 07:03 CodingStar 阅读(2703) 评论(3) 推荐(2) 编辑
摘要:这次看一下临时表,表变量和Union命令方面是否可以被优化呢?阅读导航一、临时表和表变量二、本次的另一个重头戏UNION 命令一、临时表和表变量很多数据库开发者使用临时表和表变量将代码分解成小块代码来简化复杂的逻辑。但是使用这个的后果就是可能带来性能的损害1. 对I/O子系统的影响 (存储区域网络SAN 或逻辑存储),这是由于增加了页和页I/O闩锁等待,这样等待被认为是最差的等待,这也可能会增加临时数据库的密集竞争进而导致高分配请求,最后可能出现全局分配映射页(GAM)、共享全局映射页(SGAM)或可用空间(PFS)瘫痪。全局分配映射页(Global Allocation Map, GAM)用 阅读全文
posted @ 2013-06-18 11:08 CodingStar 阅读(6482) 评论(10) 推荐(4) 编辑
摘要:这次介绍一下T-SQL中“Not IN” 和“Not Exists”的优化。Not IN 和 Not Exists 命令 :有些情况下,需要select/update/delete 操作孤立数据。孤立数据:不存在主表中而存在其关联表中。操作这样的数据,一般第一反应是利用“Not in” 或 “Not Exists”命令。使用Not IN会严重影响性能,因为这个命令会逐一检查每个记录,就会造成资源紧张,尤其是当对大数据进行更新和删除操作时,可能导致资源被这些操作锁住。选择NOT IN 还是 NOT Exists现在SQL Server 中有两个命令可以使用大数据的插入、更新、删除操作,性能方面比 阅读全文
posted @ 2013-06-17 06:45 CodingStar 阅读(12496) 评论(12) 推荐(5) 编辑
摘要:阅读导航1.概述2. 什么是重复索引3. 查找重复索引 4. 删除重复索引5. 总结1. 概述很多人都知道索引在数据库上的是有利有弊的。像其他主流商业数据库一样SQL Server允许在一个列上重复创建索引。因为SQL Server没有限制创建重复索引的数量,只是限制数据库的一个表上最多可以创建999重复索引,所以这就增加了数据库中存在重复索引的可能性。表的列上存在重复索引的话,可能会明显的损害数据库性能,因为SQL Server必须分别维护每一个重复索引。此外,SQL Server优化查询语句时,查询优化器也会考虑这个问题,这就导致一系列性能问题。要理解什么事实重复索引、怎么样找到它们、怎么 阅读全文
posted @ 2013-06-16 15:57 CodingStar 阅读(2993) 评论(0) 推荐(3) 编辑
摘要:阅读导航1. 概述2.规范逻辑数据库设计3. 使用高效索引设计4. 使用高效的查询设计5. 使用技术分析低性能6. 总结1. 概述在比较大的范围内找出能够大幅提高性能的区域,并且专注于分析这个区域,这是最有效的优化SQL Server性能的方式。否则,大量的时间和精力可能被浪费在不能提高很大性能的区域。在这里并没有讨论关于多用户并发所带来的性能问题。能获得最大性能提高的区域一般是:逻辑数据库设计,索引设计,查询设计。然而,最大的性能问题经常由于缺乏这些方面研究的原因造成。如果性能是被列为一个需要关注的问题,聪明的做法是首先专注于这些方面, 因为性能的大幅提高经常是用相对较小的时间精力完成。下面 阅读全文
posted @ 2013-06-15 23:05 CodingStar 阅读(2581) 评论(4) 推荐(4) 编辑
摘要:列出Database或Table的所有约束很多时候我们想使用像 INSERT、UPDATE、DELETE 这样的DML命令。有时候因为某个表被设置约束,导致我们操作该表出现错。拿到一个新的数据库,如果不知道哪些表被设置约束,一定让人很痛苦。如果我们能够列出所有的约束,很多错误就可以避免。下面有两个方法列出约束。方法一使用sys.objects 获得约束信息。— 显示数据库中所有约束SELECT * FROM sys.objectsWHERE type_desc LIKE ‘%CONSTRAINT’上面的语句显示sys.objects中所有的字段。我们可以改进上面的查询,显示比较舒服的结果。– 阅读全文
posted @ 2012-11-20 15:44 CodingStar 阅读(1531) 评论(1) 推荐(1) 编辑