SQL 高效运行注意事项(一)】的更多相关文章

SQL Server高效运行总的来说有两种方式: 一. 扩容,提高服务器性能,显著提高CPU.内存,解决磁盘I/O瓶颈.硬件的提升是立竿见影的,而且是风险小,在硬件更新换代非常快的年代, 当SQLServer 速度感觉慢的时候,第一选择是更换更新的,更强的服务器! 二.优化应用程序 这个是次优选择. SQL 优化,可以考虑从以下几个方面: 1.内嵌视图与临时表  [源自MSDN的文章<五种提高 SQL 性能的方法>] 临时表 - 在 tempdb 中的临时表会导致查询进行大量 I/O 操作和磁…
为了SQLSERVER能高效运行,SQLSERVER的磁盘子系统是一个重要的方面 Avg. Disk Sec/Read 这个计数器是指每秒从磁盘读取数据的平均值 下面的列表显示这个计数器值的范围,并指出这个计数器所处范围的意思 少于 10 ms - 非常好在 10 - 20 ms 之间- 还可以在 20 - 50 ms 之间- 慢,需要关注大于 50 ms –严重的 I/O 瓶颈 磁盘性能测试工具 (1)CrystalDiskMark (2)HDTUNE 硬盘检测修复工具 (3)ATTO Dis…
设计SQL后,应使用explain命令检查SQL,看是否使用到索引,是否存在filesort,重点检查检索的行数(rows)是否太大. 一般来说. 1.rows<1000,是在可接受的范围内的. 2.rows在1000~1w之间,在密集访问时可能导致性能问题,但如果不是太频繁的访问(频率低于1分钟一次),又难再优化的话,可以接受,但需要注意观察 3.rows大于1万时,应慎重考虑SQL的设计,优化SQL,优化db,一般来说不允许频繁运行(频率低于1小时一次). 4.rows达到10w级别时,坚决…
合理配置tempdb 1.tempdb在SQL Server停掉,重启时会自动的drop,re-create. 根据model数据库会默认建立一个新的 2.tempdb对IO的要求比较高,最好分配到高IO的磁盘上且与其他的数据文件分到不用的磁盘上,以提高读写效率 3.应该根据根据CPU个数来配置tempdb的文件数(有几个CPU建立几个文件) tempdb 的文件初始大小可以设置,通过ALTER DATABASE MODIFY FILE,或者界面操作直接设置文件的初始大小,这个设置在重启SQL服…
转自:http://www.php100.com/html/webkaifa/database/Mysql/2010/0409/4279.html 索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型. 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable表: CREATE TABLE mytable(   ID INT NOT NULL,    username VARCHAR(16) NOT NUL…
原文:Chapter 1 Securing Your Server and Network(1):选择SQL Server运行账号 原文出处:http://blog.csdn.net/dba_huangzj/article/details/37924127  ,专题目录:http://blog.csdn.net/dba_huangzj/article/details/37906349 未经作者同意,任何人不得以"原创"形式发布,也不得已用于商业用途,本人不负责任何法律责任. 前言: S…
Microsoft SQL Server 2005 提供了一些工具来监控数据库.方法之一是动态管理视图.动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的运行状况.诊断问题和优化性能. 常规服务器动态管理对象包括: dm_db_*:数据库和数据库对象 dm_exec_*:执行用户代码和关联的连接 dm_os_*:内存.锁定和时间安排 dm_tran_*:事务和隔离 dm_io_*:网络和磁盘的输入/输出 此部分介绍为监控 SQL Server 运行状…
SQL Server 运行状况监控SQL语句   Microsoft SQL Server 2005 提供了一些工具来监控数据库.方法之一是动态管理视图.动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的运行状况.诊断问题和优化性能. 常规服务器动态管理对象包括: dm_db_*:数据库和数据库对象 dm_exec_*:执行用户代码和关联的连接 dm_os_*:内存.锁定和时间安排 dm_tran_*:事务和隔离 dm_io_*:网络和磁盘的输入/输…
Microsoft SQL Server 2005 提供了一些工具来监控数据库.方法之一是动态管理视图.动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的运行状况.诊断问题和优化性能. 常规服务器动态管理对象包括: dm_db_*:数据库和数据库对象 dm_exec_*:执行用户代码和关联的连接 dm_os_*:内存.锁定和时间安排 dm_tran_*:事务和隔离 dm_io_*:网络和磁盘的输入/输出 此部分介绍为监控 SQL Server 运行状…
本文接上文:SQL Server 运行计划操作符具体解释(1)--断言(Assert) 前言: 依据计划.本文開始讲述另外一个操作符串联(Concatenation).读者能够依据这个词(中英文均可)先幻想一下是干嘛的.事实上还是挺直观,就是把东西连起来.那么以下我们来看看究竟连什么?怎么连?什么时候连? 简单介绍: 串联操作符既是物理操作符,也是逻辑操作符.在中文版SQL Server的图形化运行计划中称为"串联",在其它格式及英文版本号中称为"Concatenation&…
接上文:SQL Server 运行计划操作符详细解释(2)--串联(Concatenation ) 前言: 前面两篇文章介绍了关于串联(Concatenation)和断言(Assert)操作符,本文介绍第三个常见的操作符计算标量(Compute Scalar).这个操作符的名字比較直观--进行一个标量计算并返回计算值. 官方说明:Compute Scalar 运算符通过对表达式求值来生成计算标量值.该值能够返回给用户.在查询中的其它位置引用或二者皆可.比如.在筛选谓词或联接谓词中就会出现二者皆可…
第7章 Spark SQL 的运行原理(了解) 7.1 Spark SQL运行架构 Spark SQL对SQL语句的处理和关系型数据库类似,即词法/语法解析.绑定.优化.执行.Spark SQL会先将SQL语句解析成一棵树,然后使用规则(Rule)对Tree进行绑定.优化等处理过程.Spark SQL由Core.Catalyst.Hive.Hive-ThriftServer四部分构成: Core: 负责处理数据的输入和输出,如获取数据,查询结果输出成DataFrame等 Catalyst: 负责…
1.选用适合的Oracle优化器 Oracle的优化器共有3种: a.RULE(基于规则) b.COST(基于成本) c.CHOOSE(选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE.COST.CHOOSE.ALL_ROWS.FIRST_ROWS.你当然也在SQL句级或是会话(session)级对其进行覆盖. 为了使用基于成本的优化器(CBO,Cost-Based Optimizer),你必须经常运行analyze命令,以增加数…
sql优化分析 通过slow_log等方式可以捕获慢查询sql,然后就是减少其对io和cpu的使用(不合理的索引.不必要的数据访问和排序)当我们面对具体的sql时,首先查看其执行计划A.看其是否使用索引B.查看其查询的记录数C.确定索引的代价是否过高D.是否可以使用复合索引E.是否有“using temporary”F.是否有“using filesort” 创建高效索引 mysql的innodb有自己特殊的聚集索引(数据是按聚集索引的顺序存储的并和索引存储在一起),索引访问效率较高,次要索引是…
相信使用过Sql Server的人都应该知道,使用Sql Agent可以建立一些自动化Job来帮我们周期性地执行一些任务,其中执行SSIS包就是其中一个任务.而在SSIS包中有时候会去做读取文件等一些本地化操作,如果执行Sql Agent任务的执行账户权限不够有可能造成SSIS包无法读取文件执行失败.所以我们有时候需要去指定用哪一个账户去执行Sql Agent的任务. 1.要指定Sql Agent任务的执行账户首先要建立一个数据库凭据,如下图所示: 2.建立凭据时选择的标识(下图红色框指定的账户…
在spring boot 中使用mybatis 想看到sql语句的运行情况. 虽然按照 之前说的配置了 logging.level.你的mapper包位置 = debug 但是依旧没有起作用. 所以采用这种方式: 只需要相对于原来的项目修改两步 1.加入引用 <!--打印sql--> <dependency> <groupId>com.googlecode.log4jdbc</groupId> <artifactId>log4jdbc</a…
1. 描写叙述 在使用数据的时候,我时候我们须要非常多数据库,并且想用时间来做表名以区分.可是MySQL在存储过程中不支持使用变量名来做表名或者列名. 比方,有一个表我们想以"2015-07-16 12:00:00"命名. 2. 解决方式 假设仅仅是更换一个普通的表名的话,非常easy.直接使用以下sql语句就可以: alter table old_table_name rename new_table_name 可是要以时间为表名,动态命名的话就不能够了.首先我们能够用NOW()函数…
今天装数据库的机子没开,项目运行不了,于是还是决定在自己电脑上装数据库,由于新学数据库操作,记录一下 一.转储sql文件 右键点击数据库,转储sql文件,点击结构和数据 存放在本地,开始转储 转储完成关闭 二.在本地新建数据库,右键点击新建的数据库,点击运行SQL文件 选择第一步转储的文件,点击开始 完成后刷新数据库就可以了.…
select * from v$sqlarea; select * from v$sqlarea where first_load_time>'2010-11-27/09:30:00'; 这种方法查询结果每条记录显示一条查询语句,且仅仅能查询sql_text小于1000字符的,多余的会被截断.         改进一下: select * from v$sqlarea where first_load_time>'2010-11-27/09:30:00' and sql_text like '…
前言: 非常多非常多地方对于语句的优化,一般比較靠谱的回复即使--把运行计划发出来看看.当然那些仅仅看语句就说怎样怎样改代码,我一直都是拒绝的,由于这样的算是纯蒙.依据本人经验,大量的性能问题单纯从语句来看非常难发现瓶颈,同一个语句,由于环境的不同,差距非常大.所以比較合适的还是分析运行计划. 那么对于运行计划,一般使用图形化运行计划就差点儿相同了,可是用过的人也有一些疑惑,里面的图标(称为操作符)并不非常直观. 所以从本文開始,会整理一些不怎么常见但由比較重要的操作符并进行解释,对于那些表扫描…
有这样一个需求.要求在mysql存储过程中使用到事务,并且运行的是动态的sql语句 代码例如以下: BEGIN DECLARE in_data TEXT; /** 标记是否出错 */ DECLARE errno INT DEFAULT '0'; /** 假设出现sql异常.则将t_error设置为1后继续运行后面的操作 */ DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK;SET errno = 1; END; START TRA…
7.1 Spark SQL运行架构 Spark SQL对SQL语句的处理和关系型数据库类似,即词法/语法解析.绑定.优化.执行.Spark SQL会先将SQL语句解析成一棵树,然后使用规则(Rule)对Tree进行绑定.优化等处理过程.Spark SQL由Core.Catalyst.Hive.Hive-ThriftServer四部分构成: Core:负责处理数据的输入和输出,如获取数据,查询结果输出成DataFrame等 Catalyst:负责处理整个查询过程,包括解析.绑定.优化等 Hive:…
1.做订阅发布的2台Sql服务器最好要版本一致,不能出现类似如下情况: Sql2008 R2[发布] - Sql2008[订阅]: Sql2008 R2[发布] - Sql2012[订阅] 2.订阅发布理论上必须 订阅发布数据库 都要在 同一个 局域网,但也可以穿透局域网 尝试实现以下, 资料: http://456852.blog.51cto.com/380820/100822 3. sql server 发布定阅时:sqlserver 的连接要一定要用 hostname.  发现用hostn…
这是一个很久之前遇到的问题,就是用从官网下下载的jbpm组件,它的jbpm.jpdl.mysql.sql不能正常运行.其原因是该sql文件中有一句语句有错误.现在附上正确的jbpm.jpdl.mysql.sql文件代码: ;alter table JBPM_ACTION drop foreign key FK_ACTION_REFACT ;alter table JBPM_ACTION drop foreign key FK_CRTETIMERACT_TA ;alter table JBPM_A…
1. 把数据.日志.索引放到不同的I/O设备上,增加读取速度.数据量(尺寸)越大,提高I/O越重要. 2. 纵向.横向分割表,减少表的尺寸,如:可以把大数据量的字段拆分表. 3. 根据查询条件,建立索引,优化索引.优化访问方式,限制结果集的数据量.注意填充因子要适当(最好是使用默认值0).索引应该尽量小,尽量使用字节数小的列建索引,不要对有限的几个值的列建单一索引. 4. 用OR的字句可以分解成多个查询,并且通过UNION链接多个查询.它们的速度只与是否使用索引有关,如果查询需要用到联合索引,用…
4.高效的css 所谓高效就是让浏览器查找更少的元素标签来确定匹配的style元素.      1.不要再ID选择器前使用标签名        解释:ID选择是唯一的,加上标签名相当于画蛇添足了,没必要.      2.不要在类选择器前使用标签名      解释:如果没有相同的名字出现就是没必要,但是如果存在多个相同名字的类选择器则有必要添加标签名防止混淆如(p.colclass{color:red;} 和 span.colclass{color:red;}      3.尽量少使用层级关系: …
使用Sql Server 2000的数据库备份文件还原Sql Server 2000的数据库和还原Sql Server 2005的数据库区别:1.在还原至Sql 2000时是必须新建数据库并对其还原,新建的数据库名称与原库名称相同:2.在还原至Sql 2005时是必须不能新建数据库才能对其还原,还原时输入的数据库名称可以是任意的一个名称,不必与原库名称相同.…
代码如下: USE [Blog] IF OBJECT_ID('Proc_Paging', 'P') IS NOT NULL --删除同名存储过程 DROP PROC Proc_Paging GO CREATE PROC Proc_Paging ), ), ), ), @PageIndex INT, @PageSize INT, @TotalCount INT OUTPUT AS ), ) --@SQL1和@SQL2最好设置为比较长的字符串,否则会因为SQL语句过长而导致执行失败 --SET @S…
$v=New-Object -ComObject wscript.shell#也可以使用反单引号(`)字符来强制PowerShell将单引号或双引号解释为文本,0不显示命令提示符窗口$v.run("sqlcmd -s `"./sql server`" -i c:\ces_sqlscript.sql -o c:\output.txt",0) #$v.run("sqlcmd -s ""./sql server"" -i…
/* *普通分页 *在数据文件上偏移1000000查出10条 */ select * from zoldesk_92game_net_ecms_bj where classid=303 ORDER BY id ASC LIMIT 1000000,10 ; /* *高效分页 *1.在索引上查出起始索引 *2.从起始索引上查出10条 */ SELECT * from zoldesk_92game_net_ecms_bj WHERE id >= ( SELECT id FROM zoldesk_92g…