SQL Server Indexing(½é紹SQL ServerË÷Òý)
5.2 Clustered Indexes(¾Û¼¯Ë÷Òý) (page 122)
¾Û¼¯Ë÷Òý決¶¨ÁËÒ»個±í數據µÄÎïÀíÅÅÁÐ順Ðò£¬ËùÒÔ£¬Ò»個±í隻ÄÜÓÐÒ»個¾Û¼¯Ë÷Òý¡£圖5.1±íʾÁËÒ»個¾Û¼¯Ë÷ÒýµÄ結構¡£
Figure 5.1
The structure of a clustered index
Ò»個¾Û¼¯Ë÷ÒýµÄ×îµ×層(the lowest level)ÓÉËüµÄ數據頁(data pages)組³É. ¾Û¼¯Ë÷ÒýµÄ數據頁½Ð×ö這個Ë÷ÒýµÄ葉節點(leaf level of the index)¡£Ë÷ÒýµÄÆäËü²¿·Ö則ÓÉË÷Òý頁(index pages)組³É¡£×î頂層µÄË÷Òý頁½Ð×öË÷ÒýµÄ¸ù節點(index root)¡£½éì¶葉節點與¸ù節點µÄË÷Òý頁£¬½Ð×öÖÐ間頁(intermediate-level pages).
Ë÷ÒýÖÐÿ個層級µÄ·Ö頁¶¼ÊÇ鏈½ÓÔÚÒ»ÆðµÄ¡£Ë÷Òý頁ÉϵÄÿ個項Ä¿¶¼°üº¬Ò»個鍵Öµ(key value),ÒÔ¼°Ò»個Ö¸ÏòÏÂÒ»個Ë÷Òý頁µÄ×îµ×層(the lowest level)µÄÖ¸針¡£¾Û¼¯Ë÷ÒýµÄÖ¸針¾ÍÊÇÒ»個頁號(page number)£¬ÔÙ¼ÓÉÏÒ»個ÎļþID(File ID)×÷為ǰ綴£¬這ÊÇÒò為頁號僅ÔÚͬһ個數據庫ÎļþÖÐÊÇΨһµÄ¡£Ò»個ÎļþIDÔÙ¼ÓÉÏÒ»個頁號£¬¾Í組³ÉÁËÒ»個頁ID(page ID).
ÄÇ麼£¬SQL Server²é詢優»¯Æ÷ÈçºÎʹÓþۼ¯Ë÷Òý來獲È¡數據µÄÄØ£¿
1. ·µ»Ø單Ò»數據ÐÐ
SELECT * from customers WHERE customer_lname = 'Green'
Ê×ÏÈ£¬SQL Server從ϵ統±ísysindexes±íÖÐÈ¡µÃ±ícustomersµÄ¸ù頁(root page)£¬ÔÚ這個·¶ÀýÖУ¬Èç圖5.1Ëùʾ£¬ËüµÄ¸ù頁ÊÇ42. ¸ù頁ÖпÉÄÜ會Óкܶà個鍵Öµ£¬SQL Server將會ÕÒµ½²»´óì¶GreenµÄ×î´óµÄÄÇ個鍵Öµ£¬ÔÚ圖5.1ÖУ¬這個Öµ為ADAMS£¬ËüËù對應µÄÖ¸針£¬¼´頁號(page number)為58£¬ËùÒÔ頁號為58µÄË÷Òý頁將會±»獲µÃ¡£
Òò為58頁ÈÔÈ»為Ë÷Òý
Ïà¹ØÎĵµ£º
<?xml version="1.0" encoding="UTF-8"?>
<mdx>
<sets>
<set>
<name>[promomonths] </name>
&n ......
SQL> setsqlprompt"_user _privilege> " ͨ¹ýÒÔÉÏÉèÖã¬ÄãµÄsqlplusÌáʾ±êʶ¾Í³ÉÁËÒÔϸñʽÁË£º SYS AS SYSDBA> Õâ¾Í±íÃ÷µ±Ç°µÄµÇ¼ÕʺÅÊÇSYS£¬Éí·ÝÊÇSYSDBA¡£Çë×¢ÒâÔÚÉÏÃæÓï¾äÖÐʹÓÃÁËÁ½¸öÌØÊâµÄÔ¤¶¨ÒåµÀµÂ±äÁ¿£º_userºÍ_privilege£¬·Ö±ð¶¨ÒåÁ˵±Ç°Óû§ºÍÕâ¸öÓû§µÄµÇ¼Éí·Ý£¨È¨ÏÞ£©¡£ÏÖÔÚÎÒÃÇÔÙÔö¼ ......
1 --´ÓTable ±íÖÐÈ¡³öµÚ m Ìõµ½µÚ n ÌõµÄ¼Ç¼£º(Not In °æ±¾)
2
3 SELECT TOP n-m+1 *
4 from Table
5 WHERE (id NOT IN (SELECT TOP m-1 id from Table ))
6
7
8 --´ÓTABLE±íÖÐÈ¡³öµÚmµ½nÌõ¼Ç¼ (Exists°æ±¾)
9
10 SELECT TOP n-m+1 * from ......
--ÐÐÁÐת»» ÐÐתÁÐ
DROP TABLE t_change_lc;
CREATE TABLE t_change_lc (card_code VARCHAR2(3), q NUMBER, bal NUMBER);
INSERT INTO t_change_lc
SELECT '001' card_code, ROWNUM q, trunc(dbms_random.VALUE * 100) bal from dual CONNECT BY ROWNUM <= 4
UNION
SELECT '002' card_code, ROWNUM q, trunc(d ......