indices.sgml
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. <chapter id="indices">
  2. <title>Indices</title>
  3. <para>
  4. <sect1>
  5. <title>Partial Indices</title>
  6. <para>
  7. <note>
  8. <title>Author</title>
  9. <para>
  10. This is from a reply to a question on the e-mail list
  11. by <ulink url="aoki@CS.Berkeley.EDU">Paul M. Aoki</ulink>
  12. on 1998-08-11.
  13. <!--
  14.   Paul M. Aoki         | University of California at Berkeley
  15.   aoki@CS.Berkeley.EDU | Dept. of EECS, Computer Science Division #1776
  16.                        | Berkeley, CA 94720-1776
  17. -->
  18. </note>
  19. A <firstterm>partial index</firstterm>
  20. is an index built over a subset of a table; the subset is defined by
  21. a predicate.  <productname>Postgres</productname>
  22.  supported partial indices with arbitrary
  23. predicates.  I believe IBM's db2 for as/400 supports partial indices
  24. using single-clause predicates.
  25. <para>
  26. The main motivation for partial indices is this:
  27. if all of the queries you ask that can
  28. profitably use an index fall into a certain range, why build an index
  29. over the whole table and suffer the associated space/time costs?
  30. (There are other reasons too; see 
  31. <xref linkend="STON89b-full" endterm="STON89b"> for details.)
  32. <para>
  33. The machinery to build, update and query partial indices isn't too
  34. bad.  The hairy parts are index selection (which indices do I build?)
  35. and query optimization (which indices do I use?); i.e., the parts
  36. that involve deciding what predicate(s) match the workload/query in
  37. some useful way.  For those who are into database theory, the problems
  38. are basically analogous to the corresponding materialized view
  39. problems, albeit with different cost parameters and formulae.  These
  40. are, in the general case, hard problems for the standard ordinal 
  41. <acronym>SQL</acronym>
  42. types; they're super-hard problems with black-box extension types,
  43. because the selectivity estimation technology is so crude.
  44. <para>
  45. Check <xref linkend="STON89b-full" endterm="STON89b">,
  46. <xref linkend="OLSON93-full" endterm="OLSON93">,
  47. and
  48. <xref linkend="SESHADRI95-full" endterm="SESHADRI95">
  49. for more information.