随笔分类 - SQL SERVER
摘要:谈到BI,就会谈到数据挖掘(Data mining)。数据挖掘是指用某些方法和工具,对数据进行分析,发现隐藏规律并利的一种方法。下面我们将通过具体的例子来学习什么是数据挖掘。案例“上大学分析”-体验什么是数据挖掘某社会机构,收集了大量的学生考大学的数据。该机构希望找出一些规律,以推动更多的学生考大学。该机构委托你来做这个分析工作,给出具体的可以推动更多学生考大学的建议。收集到的数据如下:你可能会考虑用SQL语句进行查询分析。但问题是:1.用什么语句查呢?要组合什么条件呢?2.你想查到怎样的结果呢?这个结果对决策有帮助吗?那数据挖掘一下吧!但如何挖掘呢?不了解数据挖掘的人,往往会认为只需要让计算
阅读全文
摘要:简介 死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的。理解死锁首先需要对死锁所涉及的相关观念有一个理解。一些基础知识 要理解SQL Server中的死锁,更好的方式是通过类比从更大的面理解死锁。比如说一个经典的例子就是汽车(主体)对于道路(资源)的征用,如图1所示。 图1.对于死锁的直观理解 在图1的例子中,每队汽车都占有一条道路,但都需要另外一队汽车所占有的另一条道路,因此互相阻塞,谁都无法前行,因此造成了死锁。由这个简单的例子可以看出,发生死锁需要四个必要条件,如下:1)互斥条件: 主体对于资源是独占的,图1中每条汽车道只能跑一队汽车,不能跑第二队。2)请求和等待条件: 指主.
阅读全文
摘要:大数据处理是一个头疼的问题,特别当达不到专业DBA的技术水准时,对一些数据库方面的问题感到无赖。所以还是有必要了解一些数据库方面的技巧,当然,每个人都有自己的数据库方面的技巧,只是八仙过海,所用的武功不同而已。我把我最常用的几种方式总结来与大家分享,大家还有更多的数据库设计和优化的技巧,尽量的追加到评论中,有时一篇完整的博客评论比主题更为精彩。方法1:采用表分区技术。 第一次听说表分区,是以前的一个oracle培训。oracle既然有表分区,就想到mssql是否有表的分区,当时我回家就google了一把,资料还是有的,在这我儿只是再作一次推广,让更多的人了解和运用这些技术。 表分区,就是将..
阅读全文
摘要:一、前言 数据库邮件是一种通过 Microsoft SQL Server 2005 Database Engine 发送电子邮件的企业解决方案。比如当我在家里睡觉的时候,我也想密切关注咱公司数据库咋样了,于是我笔记本冒着被烧坏的风险,开着监听者服务器给我发来的net send或者是邮件,当一有邮件的时候,Gmail有声音提示的.然后火速看下是不是出啥问题了,当然也可以使用数据库邮件在MSSQL中...
阅读全文
摘要:为了减少数据库服务器出问题导致数据掉失,一般都要对数据库进行备份,视对数据的重要性和性能的折中采用不同的备份方案。一般备份方案为:完全备份(一周一次)+差异备份(一天一次)+事务日志备份(两小时一次,视对数据的重视情况而选择)这样的话即使出现问题,数据掉失的范围是两个小时。首先来分别阐述数据库备份的类型:1、完全备份 这是大多数人常用的方式,它可以备份整个数据库,包含用户表、系统表、索引、视图和...
阅读全文
摘要:数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和where条件的区别如下:1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全...
阅读全文
摘要:索引的使用索引的简单使用说明:一.常用扫描方式:全表扫描全表扫描就是顺序地访问表中每条记录. 索引扫描索引唯一扫描(index unique scan) 索引范围扫描(index range scan) 索引全扫描(index full scan) 索引快速扫描(index fast full scan) 1.索引唯一扫描(index unique scan) 通过唯一索引查找一个数值经常返回单个...
阅读全文
摘要:Here’s an example of the classic scenario that is usually used to introduce the concept of a deadlock in a database: ...
阅读全文
摘要:In this post I’ll look at an actual deadlock, then troubleshoot it using the steps I described in Deadlock Troubleshooting, Part 1 so you can see them in action. This is a simplified version of a de...
阅读全文
摘要:A deadlock is a circular blocking chain, where two or more threads are each blocked by the other so that no one can proceed. When the deadlock monitor thread in SQL Server detects a circular blocking ...
阅读全文
摘要:1. 死锁原理 根据操作系统中的定义:死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。 死锁的四个必要条件: 互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。 请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。 非剥夺条件(No pre-em...
阅读全文
摘要:一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏读 A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致 不可重复读 A用户读取数...
阅读全文
摘要:打印当前时间:print(convert(nvarchar(50),GetDate(),121)) --返回2009-01-06 10:29:42.263 SQL Server 日期和时间函数 1、常用日期方法(下面的GetDate() = '2006-11-08 13:3...
阅读全文
摘要:2、经过数据库的优化后,发现IIS的进程占用的cup非常的高,甚至瞬间上升到80%~90 A、这种情况估计是代码中存在死循环。天哪,网站上有几百甚至上千的文件,如何查找,晕死。 首先,分析一下死循环产生的情况,利用VBScript写ASP的时候,利用循环语句时,可能发生死循环。举例子,最能说明问题: strSQL=”Select name from user where name=’张三...
阅读全文
摘要:【主题】 在某个大型网站中,有张保存新闻记录的表,数据库量5万左右(其实不算大),网站页面中的新闻都是从该表中动态生产的,同时还有80~90家的通发网站中的新闻也是从该表中动态生产的。导致该表的访问量非常地的大,尤其是在搞活动时网站几乎崩溃。针对这种情况,对网站进行优化,并阐述优化中发现或可能导致死循环的情况。 【声明】 该文已经博客园上发布过,但在修改网友提出的问题时,出了问题。...
阅读全文
摘要:使用的表结构如下: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->USE [TestDB] GO /****** 对象: Table [dbo].[Person] 脚本日期: 11/23/2008 13:37:48 ******/ SET A...
阅读全文
摘要:问题描述 假设有张学生成绩表(CJ)如下 Name Subject Result 张三 语文 80 张三 数学 90 张三 物理 85 李四 语文 85 李四 数学 92 李四 物理 82 现在 想写 sql 语句 查询后结果 为 姓名 语文 数学 物理 张三 80 90 85 李四 85 92 82 该怎么实现 ? 研究意义 这是个并不复杂的问...
阅读全文
摘要:动态SQL也就是可以动态的生成SQL语句,并执行!这种功能大部分是在存储过程中。下面是一个简单的例子 create PROCEDURE sp_fy_readtable @strResult varchar(100) output, @tbName varchar(20) as begin if exists (select * from sysobjects where name...
阅读全文
摘要:1. sysobjects系统表: 在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都对应一行。 2. syscolumns系统表: 为每个表和视图中的每列返回一行,并为数据库中的存储过程的每个参数返回一行。 3. syscomments系统表: 包含数据库中每个视图、规则、默认值、触发器、CHECK 约束、DEFAULT 约束和存储过程的项。text 列包含原始的 SQL 定...
阅读全文
摘要:聚集索引的重要性和如何选择聚集索引 在上一节的标题中,笔者写的是:实现小数据量和海量数据的通用分页显示存储过程。这是因为在将本存储过程应用于“办公自动化”系统的实践中时,笔者发现这第三种存储过程在小数据量的情况下,有如下现象: 1、分页速度一般维持在1秒和3秒之间。 2、在查询最后一页时,速度一般为5秒至8秒,哪怕分页总数只有3页或30万页。 虽然在超大容量情况下,这个分页的实现过...
阅读全文