随笔分类 - mssql
摘要:进行备份通常会更改数据库,而这又会影响其他备份以及还原这些备份的方式。例如,常规数据备份可以用作一个或多个后续差异备份的差异基准。但是,有时必须针对特殊目的执行数据备份,并且不应该影响数据库的整体备份和还原过程。为此,SQL Server 2005 引入了仅复制备份,它独立于正常的备份序列。仅复制备...
阅读全文
摘要:数据库镜像中成功收缩事务日志文件数据库已经运行在数据库镜像的时候怎么收缩事务日志文件呢??我们有一个产品数据库发现事务日志文件已经到到了60GB,而数据库本身才30GB。需要收缩事务日志文件。经过一个礼拜的观察,平均没有有1.5GB的日志,99%的日志是在晚上产生的,周末有16GB的日志,看来大部分...
阅读全文
摘要:目标:主机做了Mirror和Replication,当主机出现问题时,Replication和Mirror实现自动的故障转移(Mirror和Replication都切换到备机,而当主机重新启动后,自动充当备机的角色)。环境:五台虚拟机,配置均为Windows2008Enterprise + SQLS...
阅读全文
摘要:BACKUP LOG jmd8 TO DISK = N'C:\jmd8_20140429014500.trn' WITH NOREWIND, NOUNLOADUSE [JMD8]GODBCC SHRINKFILE (N'ChaoRan_Log' , 1)GO
阅读全文
摘要:微软linq技术已经出现很久,很多公司已经开始商业使用,作为我们暂时没有用到的人来说,也应该适当的了解下相关知识,但是直到目前网络上对他的看法仍然是褒贬不一,当然任何事情都不可能完美的,下面就针对大多数人比较关注的效率问题做一次试验,来实实在在的用事实说次话,(由于过年在家无事突发奇想做的试验也没用...
阅读全文
摘要:在用了LINQ語法之後的一個月,我幾乎把SQL語法全部拋到腦後了,不過LINQ好用歸好用,但是實際上操作資料庫的還是SQL語法,如果不知道LINQ語法編譯過後產生怎樣的SQL語法,一不小心效能就會變差,所以今天來記錄三種查詢LINQ所轉換的SQL語法。第一種:參考自:ADO.Net Entity F...
阅读全文
摘要:我们知道,SQL Server 2005/2008的系统存储过程在正常情况下是无法直接修改的。尽管本文是介绍怎样修改它的,但在这里,我还是建议大家尽量不要去修改它。(好像有点绕哈...)OK,闲话少说,下面我举个实际案例讲解一下,如对于系统存储过程sp_Monitor,若要运行此存储过程,用户必须是 sysadmin 固定服务器角色的成员。通过执行命令:sp_helptext 'sp_Monitor',我们可以看到,该过程中存在这样的语句:[c-sharp]view plaincopyif(not(is_srvrolemember('sysadmin')=1))
阅读全文
摘要:SQL Server 对数据库损坏的错误类型做了细化,在此对几个典型的错误作一下介绍。错误信息是:“在文件 '%ls'中、偏移量为 %#016I64x 的位置执行 %S_MSG 期间,操作系统已经向 SQL Server 返回了错误 %ls。”“The operating systemreturned error %ls to SQL Server during a %S_MSGat offset %#016I64x in file '%ls'.”例如:Msg 823, Level 24, State 3, Line 1The operating system
阅读全文
摘要:概要锁升级为表锁插入转换很多细粒度的锁 (如行或页锁) 的过程。Microsoft SQL Server 动态确定何时执行锁升级。作出决定之前,SQL Server 将特定的扫描,整个事务,并且用于锁定在系统中作为一个整体的内存由持有的锁的数目只会保留的锁的数量考虑。通常情况下,SQL Server 默认行为导致位置,这会提高性能,或当必须将过多的系统锁定内存减少到更合理水平,只能在这些时间点发生的锁升级。但是,一些应用程序或查询的设计可能会触发一次时不太理想,并已呈报的表锁可能会阻止其他用户的锁升级。本文讨论如何确定是否锁升级而导致阻塞和如何处理不需要的锁升级。回到顶端|提供反馈更多信息如何
阅读全文
摘要:所有Select加 With (NoLock)解决阻塞死锁,在查询语句中使用 NOLOCK 和 READPAST处理一个数据库死锁的异常时候,其中一个建议就是使用 NOLOCK 或者 READPAST 。有关 NOLOCK 和 READPAST的一些技术知识点:对于非银行等严格要求事务的行业,搜索记录中出现或者不出现某条记录,都是在可容忍范围内,所以碰到死锁,应该首先考虑,我们业务逻辑是否能容忍出现或者不出现某些记录,而不是寻求对双方都加锁条件下如何解锁的问题。NOLOCK 和 READPAST 都是处理查询、插入、删除等操作时候,如何应对锁住的数据记录。但是这时候一定要注意NOLOCK 和
阅读全文
摘要:说明Chaos无法改写隔离级别更高的事务中的挂起的更改。ReadCommitted在正在读取数据时保持共享锁,以避免脏读,但是在事务结束之前可以更改数据,从而导致不可重复的读取或幻像数据。ReadUncommitted可以进行脏读,意思是说,不发布共享锁,也不接受独占锁。RepeatableRead在查询中使用的所有数据上放置锁,以防止其他用户更新这些数据。防止不可重复的读取,但是仍可以有幻像行。Serializable在DataSet上放置范围锁,以防止在事务完成之前由其他用户更新行或向数据集中插入行。Snapshot通过在一个应用程序正在修改数据时存储另一个应用程序可以读取的相同数据版本来
阅读全文
摘要:SELECT CONVERT(VARCHAR(100), 列名) FROM Table提示错误:无法执行varchar值到varchar的隐式转换,原因是,由于排序规则冲突,该值的排序规则未经解析。修改为:SELECT CONVERT(VARCHAR(100), 列名 COLLATE Chinese_PRC_CI_AS) FROM Table
阅读全文
摘要:--90兼容模式以上,2005+-- http://raresql.com/2012/10/24/sql-server-how-to-find-who-deleted-what-records-at-what-time/-- Script Name: Recover_Deleted_Data_With_UID_Date_Time_Proc-- Script Type : Recovery Procedure -- Develop By: Muhammad Imran-- Date Created: 24 Oct 2012-- Modify Date: -- Version : 1.2-- No
阅读全文
摘要:DECLARE @dbNameSYSNAME,@schemaNameSYSNAME,@ObjectNameSYSNAME,@sqlNVARCHAR(max)SELECT @dbName='DBname',@schemaName='dbo',@ObjectName='tablename'SET @sql='SELECT COUNT(1) AS DataCount FROM '+@dbName+'.'+@schemaName+'.'+@ObjectName+' WITH (NOLOCK)'
阅读全文
摘要:最近遇到了一个看上去很奇怪,分析起来很有意思的死锁问题。这个死锁看上去难以理解。而分析过程中,又使用了很多分析SQL Server死锁的典型方法。记录下来整个分析过程还是很有意义的。问题重现步骤:经过提炼,问题重现的步骤非常简单,在SQL 2008上可以很容易地重现。1. 首先,创建一张表格,上面有一个clustered index,两个non-clustered index。createtablett(idintidentityprimarykey,achar(36),bchar(36),dvarchar(max))gocreateindexix_a_bcontt(a)include(d)c
阅读全文
摘要:插入光盘后不要用autorun的安装,使用命令行安装!cd进安装光盘的根目录,输入命令:setup.exe /INSTALLSHAREDDIR="D://Program Files//Microsoft SQL Server//" /INSTALLSHAREDWOWDIR="D://Program Files (x86)//Microsoft SQL Server//"安装即可,其中INSTALLSHAREDDIR为x64部件安装的路径,INSTALLSHAREDWOWDIR为x32部件安装的路径。切记不可使用默认的setup.exe就安装的方式,一旦进
阅读全文
摘要:安装如下步骤安装asp.net应用程序开发功能即可==>(WIN7 IIS7)控制面板-->程序和功能-->打开或关闭windows功能-->Internet信息服务-->万维网服务-->应用程序开发功能选择asp.net,安装即可
阅读全文
摘要:最近因為在查一個SQL的效能問題,透過sys.dm_os_wait_stats來取得Top的Wait(fromWait statistics, or please tell me where it hurts) ,如下,SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;GO--1.取得目前最高的WaitWITH [Waits] AS (SELECT [wait_type], [wait_time_ms] / 1000.0 AS [WaitS], ([wait_time_ms] - [signal_w...
阅读全文
摘要:为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。在实际开发中最为常见的设计范式有三个:1.第一范式(确保每列保持原子性)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分
阅读全文
摘要:很多人都知道SQL注入,也知道SQL参数化查询可以防止SQL注入,可为什么能防止注入却并不是很多人都知道的。本文主要讲述的是这个问题,也许你在部分文章中看到过这块内容,当然了看看也无妨。首先:我们要了解SQL收到一个指令后所做的事情:具体细节可以查看文章:Sql Server 编译、重编译与执行计划重用原理在这里,我简单的表示为:收到指令 -> 编译SQL生成执行计划 ->选择执行计划 ->执行执行计划。具体可能有点不一样,但大致的步骤如上所示。接着我们来分析为什么拼接SQL 字符串会导致SQL注入的风险呢?首先创建一张表Users:CREATE TABLE [dbo].[U
阅读全文