⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sql server开发技巧-7.htm

📁 微软数据库开发梦工场多媒体教学-sql server篇.rar,是多媒体教学的
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#000000" text="#FFFFFF">
<p>实践证明,表的行数越多,工作表的性能就越差,当stuff有620000行时,执行时间竟达到220秒!还不如将or子句分开:</p>
<p>select count(*) from stuff where id_no='0'<br>
  select count(*) from stuff where id_no='1'</p>
<p>得到两个结果,再作一次加法合算。因为每句都使用了索引,执行时间只有3秒,在620000行下,时间也只有4秒。或者用更好的方法,写一个简单的存储过程:</p>
<p>create proc count_stuff as<br>
  declare @a int<br>
  declare @b int<br>
  declare @c int<br>
  declare @d char(10)<br>
  begin<br>
  select @a=count(*) from stuff where id_no='0'<br>
  select @b=count(*) from stuff where id_no='1'<br>
  end<br>
  select @c=@a+@b<br>
  select @d=convert(char(10),@c)<br>
  print @d</p>
<p>直接算出结果,执行时间同上面一样快!</p>
<p>总结:可见,所谓优化即where子句利用了索引,不可优化即发生了表扫描或额外开销。任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等等,查询时要尽 
  可能将操作移至等号右边。in、or子句常会使用工作表,使索引失效;如果不产生大量重复值,可以考虑把子句拆开;拆开的子句中应该包含索引。</p>
<p>要善于使用存储过程,它使SQL变得更加灵活和高效。从以上这些例子可以看出,SQL 优化的实质就是在结果正确的前提下,用优化器可以识别的语句,充分利用索引,减少表扫描的I/O次数,尽量避免表搜索的发生。其实SQL的性能优化是一个复杂的过程,上述这些只是在应用层次的一种体现,深入研究还会涉及数据库层的资源配置、网络层的流量控制以及操作系统层的总体设计。</p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -