文章分类 -  Data Base--优化

1 2 下一页
SQL SERVER 2008 登陆失败(SQL和windows都没有对应的权限)
摘要:昨天在测试一些权限今天早上来就发现SQL SERVER 登陆不上去,报错为:用户登陆失败:消息18456,级别14,状态1,服务器 XXX,第1行 . 用户'XXX'登录失败。我的服务和代理都是自动启动的,所以问题不在这了,由于是本地服务,也没有多个帐户,测试的时候Sa也被自己禁用了。有的用户就是... 阅读全文
posted @ 2014-07-23 11:16 代岳强 阅读(378) 评论(0) 推荐(0) 编辑
创建以及分析跟踪
摘要:创建跟踪的存储过程 1 set nocount on 2 use master 3 go 4 5 if OBJECT_ID('sp_PerfWorkLoad_Strac_Start') is not null 6 drop proc sp_PerfWorkLoad_Strac_Start 7 go 8 9 /****************************************************/ 10 /* Created by: SQL Server 2008 R2 Profiler */ 11 /* Date: 2013/... 阅读全文
posted @ 2013-05-15 17:00 代岳强 阅读(352) 评论(0) 推荐(0) 编辑
查询表的索引信息
摘要:SELECT TableId=O.[object_id],TableName=O.Name,IndexId=ISNULL(KC.[object_id],IDX.index_id),IndexName=IDX.Name,IndexType=ISNULL(KC.type_desc,'Index'),Index_Column_id=IDXC.index_column_id,ColumnID=C.Column_id,ColumnName=C.Name,Sort=CASE INDEXKEY_PROPERTY(IDXC.[object_id],IDXC.index_id,IDXC.inde 阅读全文
posted @ 2013-04-25 12:18 代岳强 阅读(343) 评论(0) 推荐(0) 编辑
In & Exists & Join 分析测试
摘要:测试In & Exists & Join 的性能Step 1. 测试环境搭建Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Enterprise Edition (64-bit) on Windows NT 6.1 1: -- IN & EXISTS & INNER JOIN 2: CREATE TABLE BIG_TB 3: ( 4: ID INT IDENTITY PRIMARY KEY, 5: Col CHAR(4) NOT NULL 6: ) 7: 8: C... 阅读全文
posted @ 2013-04-24 14:48 代岳强 阅读(418) 评论(0) 推荐(0) 编辑
数据库优化思路--邹建
摘要:优化, 比较考察经验和能力, 如果是通过简单的规则和步骤就能解决问题,那肯定市面就就会有现成的工具了在定位问题上, 通常会先看看服务器的 CPU 和磁盘 I/O, 如果在一个比较高的值, 那么响应慢是正常的, 我们可以通过 sp_who2 结合 SQL Profile 之类, 确定连接数是否过高, 是有大部分进程都在等待资源, 还是有频繁的查询, 如果还是不好判断的话, 也可以通过关闭一些程序模块, 如果某些模块被关闭后, 服务器响应正常, 那么应该针对这些模块涉及的SQL 进行分析优化, 如果单独运行有问题的模块, 从SQL Profile看到的性能是很好的, 那么需要算是否和其他模块一起使 阅读全文
posted @ 2013-04-22 15:06 代岳强 阅读(391) 评论(0) 推荐(0) 编辑
浅谈聚集索引和非聚集索引的区别和实际状况下的选择
摘要:简单地说, 聚焦索引和数据存储在一起, 决定表数据的物理存储顺序, 所以一个表只能有一个聚焦索引, 其叶子结点是数据行, 所以, 通过聚焦索引找到一条记录的时候, 这条记录相关的列的值也可以直接取出来非聚焦索引单独存储, 如果查询的结果引用了非聚焦索引不包括的那些列, 那么非聚焦索引还需要通过行定位器去表中取该记录对应的列的数据, 这里面就有一个再次查找的问题所以一般人会认为聚焦索引的效率会比非聚焦索引的效率高, 是基于非聚焦索引存在2次查找的问题非聚焦索引的行定位器体现了聚焦索引与非聚焦索引之间的联系, 如果表中包含聚焦索引, 那么行定位器就是聚焦索引的值(如果聚焦索引不是唯一的, 则还包含 阅读全文
posted @ 2013-04-22 15:03 代岳强 阅读(485) 评论(0) 推荐(0) 编辑
找到死锁与阻塞的原因的方法
摘要:if exists (select * from dbo.sysobjectswhere id = object_id(N'[dbo].[sp_who_lock]')and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[sp_who_lock]GO--说明 : 查看数据库里阻塞和死锁情况use mastergocreate procedure sp_who_lockasbegindeclare @spid int,@bl int,@intTransactionCountOnEntry i 阅读全文
posted @ 2013-04-22 14:04 代岳强 阅读(226) 评论(0) 推荐(0) 编辑
key-value数据库 【转载】
摘要:传统的文件系统中,需要维护目录的层次结构,使用dentry,inode,directory等复杂结构保存元数据的信息;而面对更多定制文件系统的需求,越来越多的系统考虑使用key-value形式保存文件系统中的元数据信息。使用数据库来保存这些元数据的key-value对是一个不错的选择,相比传统的关系型数据库,key-value数据库在这方面更贴近应用需求,因为,保存元数据的数据库往往不会有复杂的关系操作,仅仅需要提供高效的读写性能,可靠性和持久化。Berkeley DB比较经典的key-value数据库,C语言开发,能够提供较高的读写性能,支持海量存储应用,数据库自身实现了备份机制,支持两种. 阅读全文
posted @ 2013-04-22 10:28 代岳强 阅读(226) 评论(0) 推荐(0) 编辑
数据查询规范
摘要:一、IN、OR、 EXISTS EXISTS要远比IN的效率高。里面关系到full table scan和range scan。几乎将所有的IN操作符子查询改写为使用EXISTS的子查询。IN、OR子句常会使用工作表,使索引失效。如果不产生大量重复值,可以考虑把子句拆开。拆开的子句中应该包含索引。举例说明:在嵌套查询中,对表的顺序存取对查询效率可能产生致命的影响。比如采用顺序存取策略,一个嵌套3层的查询,如果每层都查询1000行,那么这个查询就要查询10亿行数据。避免这种情况的主要方法就是对连接的列进行索引。例如,两个表:学生表(学号、姓名、年龄……)和选课表(学号、课程号、成绩)。如果两个表 阅读全文
posted @ 2013-04-19 11:28 代岳强 阅读(748) 评论(0) 推荐(0) 编辑
数据库设计规范
摘要:一、关键字段建立索引 关键字段说明:主键、外键、在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。 建索引不局限与单个列索引,当查询中经常包含多个列时可考虑建组合索引、非聚集索引。 约束:条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。比如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就无必要建立索引。如果建立索引不但不会提高查询效率,反而会严重降低更新速度。 经验:索引的追求的目标的提高速度,但不是越多的索引就越好。参考一下URL,创建缺失索引(未创建、未考虑到)、删除当前数据库中使用较少的索引或者写入次数大于读取次数 阅读全文
posted @ 2013-04-19 11:20 代岳强 阅读(161) 评论(0) 推荐(0) 编辑
数据库优化经验分享
摘要:数据库系统是管理信息系统的核心,基于数据库的联机事务处理(OLTP)以及联机分析处理(OLAP)是银行、企业、政府等部门最为重要的计算机应用之一。从大多数系统的应用实例来看,查询操作在各种数据库操作中所占据的比重最大,而查询操作所基于的SELECT语句在SQL语句中又是代价最大的语句。举例来说,如果数据的量积累到一定的程度,比如一个银行的账户数据库表信息积累到上百万甚至上千万条记录,全表扫描一次往往需要数十分钟,甚至数小时。如果采用比全表扫描更好的查询策略,往往可以使查询时间降为几分钟,由此可见查询优化技术的重要性。笔者在应用项目的实施中发现,许多程序员在利用一些前端数据库开发工具(如Powe 阅读全文
posted @ 2013-04-18 18:49 代岳强 阅读(245) 评论(0) 推荐(1) 编辑
定时重启数据库服务
摘要:1:创建.bat 运行脚本文件2:文件内容为net stop MSSQLSERVER(数据库服务名称)net start MSSQLSERVER(数据库服务名称)3:设置任务计划,win7/win8/winserver2008 设置“使用最高权限运行”。4:设置任务计划的脚本文件以及触发器。 阅读全文
posted @ 2013-04-18 11:37 代岳强 阅读(1638) 评论(0) 推荐(0) 编辑
mssql 优化之IO部分
摘要:Consider a table with two non-clustered indexes that could satisfy a SELECT query.The first index has all the required columns.The second index has all the required columns, plus several additional columns.SQL 服务器:最大限度的减少磁盘 I/O。 URL:http://technet.microsoft.com/zh-cn/magazine/jj643251.aspx 阅读全文
posted @ 2013-04-17 10:39 代岳强 阅读(486) 评论(0) 推荐(0) 编辑
使用计算列提高查询性能
摘要:一般在写SQL的时候应该避免在条件中使用函数,因为这样就不能有效的使用索引,从而无法生成高效的执行计划。SQL Server提供了计算列可以帮助我们解决这个问题。 我们举个普通的例子。有很多公司使用SQL Server Collcation为大小写敏感的,因为没有办法控制用户的输入(当然在程序中进行转化也是可以的,比如全部转为大写,但是当时设计的时候很多程序员都没有考虑到),所以再做查询的时候就必须要强制转化。下面的语句就无法使用到索引: select * from t wherelower(c1) = 'az'.但是我们可以通过增加计算列解决这个问题:setstatistic 阅读全文
posted @ 2013-03-28 15:09 代岳强 阅读(251) 评论(0) 推荐(0) 编辑
SQL Server 数据库巡检脚本 [转载]
摘要:--1.查看数据库版本信息 select @@version --2.查看所有数据库名称及大小 select sp_helpdb --3.查看数据库所在机器的操作系统参数 exec master..xp_msver --4.查看数据库启动的参数 exec sp_configure --5.查看数据库启动时间 selectconvert(varchar(30),login_time,120) from master..sysprocesses where spid=1 --6.查看数据库服务器名 select'Server Name:'+ltrim(@@servername) - 阅读全文
posted @ 2013-03-28 12:15 代岳强 阅读(717) 评论(0) 推荐(0) 编辑
mssql 查询系统资源的使用情况
摘要:CPU以及资源等待所占的百分比-- Clear Wait Stats,清理等待的统计。--如果你的SQL Server运行很长时间,并且进行了重大改变,例如添加了一个新索引,那么你应该考虑清理旧的统计信息,否则旧的累计统计数据会影响结果。DBCC SQLPERF('sys.dm_os_wait_stats', CLEAR) ; -- Total waits are wait_time_ms (high signal waits indicates CPU pressure)SELECT CAST(100.0 * SUM(signal_wait_time_ms) / SUM(wa 阅读全文
posted @ 2013-01-05 18:25 代岳强 阅读(301) 评论(0) 推荐(0) 编辑
mssql 优化之索引部分
摘要:索引组成、产生原理、解决方法、优化方法索引组成、产生原理、解决方法:http://wenku.baidu.com/view/a45a827d27284b73f2425071.html优化方法(国外著名Ola Hallengren数据库专家,微软官方推荐):http://download.csdn.net/detail/daiyueqiang/5272815显示指定的表或视图的数据和索引的碎片信息方法:DBCC SHOWCONTIG语法:DBCC SHOWCONTIG [ ( { table_name | table_id | view_name | view_id } [ , ... 阅读全文
posted @ 2012-12-31 14:25 代岳强 阅读(2333) 评论(0) 推荐(2) 编辑
SQL Server 2012 ColumnStore索引简介
摘要:微软官方简介SQL 服务器 2012年引入了一种新的名为 ColumnStore 的索引。ColumnStores 是所有有关性能和提高的性价比。中非 ColumnStore 查询处理的每个数据行。与 ColumnStore,可以将 SQL Server 进程行在批处理。不只是数据在多个行的列存储在单个数据页中,但您也可以在批处理中处理它。最重要的是大量压缩数据。这工作是比率大约为 7-1。ColumnStore 提供了很多更好的吞吐量,因为 CPU 开销减少执行查询时。处理需要较少的 I/O 和 RAM,非常适合于快速跟踪数据仓库体系结构。ColumnStore 索引提供大规模的 10 到 阅读全文
posted @ 2012-12-27 19:02 代岳强 阅读(3464) 评论(0) 推荐(0) 编辑
自定义维护计划
摘要:高效维护数据库的关键技巧:http://technet.microsoft.com/zh-cn/magazine/2008.08.database.aspx建立自己的维护计划的最佳开始方式是使用 Ola Hallengren 编写的免费脚本。http://ola.hallengren.com/ 阅读全文
posted @ 2012-12-24 11:27 代岳强 阅读(159) 评论(0) 推荐(0) 编辑
还原数据库问题
摘要:问题描述:想把原来旧版本SQL的数据库备分还原到SQL2005上去,结果无法还原,错误信息为:备份集中的数据库备份与现有的 'foofoo' 数据库不同。解决方法:1:检测兼容版本。 设置所还原的数据的兼容版本为备份的版本。设置方法为:Microsoft SQL Server Management Studio->ServerName->Database->database name ,right manu->properties->options->Campatiblity level->downframe list,select: 阅读全文
posted @ 2012-11-30 11:05 代岳强 阅读(140) 评论(0) 推荐(0) 编辑

1 2 下一页