คำถามติดแท็ก index

โครงสร้างฐานข้อมูลที่สามารถปรับปรุงความเร็วของการสืบค้นที่ราคาของพื้นที่ดิสก์และการแทรก / การปรับปรุงที่ช้ากว่า มันเก็บสำเนาของคอลัมน์อย่างน้อยหนึ่งคอลัมน์ที่เรียงลำดับ แต่โครงสร้างข้อมูลแตกต่างกันเพื่อให้เข้าถึงได้เร็วขึ้น

2
ใช้มุมมองที่จัดทำดัชนีไว้สำหรับการรวม - ดีเกินจริงหรือ?
เรามีคลังข้อมูลที่มีจำนวนเรกคอร์ดที่ค่อนข้างใหญ่ (10-20 ล้านแถว) และมักเรียกใช้คิวรีที่นับเร็กคอร์ดระหว่างวันที่แน่นอนหรือนับจำนวนเรกคอร์ดด้วยค่าสถานะที่แน่นอนเช่น SELECT f.IsFoo, COUNT(*) AS WidgetCount FROM Widgets AS w JOIN Flags AS f ON f.FlagId = w.FlagId WHERE w.Date >= @startDate GROUP BY f.IsFoo ประสิทธิภาพไม่น่ากลัว แต่อาจค่อนข้างเชื่องช้า (อาจใช้เวลา 10 วินาทีในแคชเย็น) เมื่อเร็ว ๆ นี้ฉันค้นพบว่าฉันสามารถใช้GROUP BYในมุมมองที่จัดทำดัชนีและลองใช้บางสิ่งที่คล้ายกับต่อไปนี้ CREATE VIEW TestView WITH SCHEMABINDING AS SELECT Date, FlagId, COUNT_BIG(*) AS WidgetCount FROM …

4
Do SSD ช่วยลดประโยชน์ของฐานข้อมูล
ฉันเพิ่งได้ยินเกี่ยวกับ Robert Martin วันนี้และดูเหมือนว่าเขาเป็นบุคคลสำคัญในโลกซอฟต์แวร์ดังนั้นฉันไม่ได้ตั้งใจให้ชื่อของฉันปรากฏราวกับว่ามันเป็นเหยื่อคลิกหรือฉันใส่คำเข้าไปในปากของเขา ฉันตีความสิ่งที่ฉันได้ยินจากเขาด้วยประสบการณ์และความเข้าใจที่ จำกัด ของฉันได้อย่างไร ฉันกำลังดูวิดีโอวันนี้ (ในสถาปัตยกรรมซอฟต์แวร์) จากการพูดคุยของ Robert C. Martin และในช่วงครึ่งหลังของวิดีโอหัวข้อของฐานข้อมูลเป็นจุดสนใจหลัก จากความเข้าใจในสิ่งที่เขาพูดดูเหมือนว่าเขาจะบอกว่า SSD นั้นจะลดประโยชน์ของฐานข้อมูล ( อย่างมาก ) เพื่ออธิบายวิธีที่ฉันมาถึงการตีความนี้: เขากล่าวถึงวิธีที่มี HDDs / ดิสก์หมุนการดึงข้อมูลช้า อย่างไรก็ตามทุกวันนี้เราใช้ SSD เขาตั้งข้อสังเกต เขาเริ่มต้นด้วย "RAM กำลังมา" จากนั้นดำเนินการต่อโดยการกล่าวถึงดิสก์ RAM แต่แล้วก็บอกว่าเขาไม่สามารถเรียกมันว่าดิสก์ RAM ได้ดังนั้นจึงต้องบอกว่า RAM ดังนั้นสำหรับ RAM เราไม่ต้องการดัชนีเพราะทุกไบต์ต้องใช้เวลาเท่ากันในการรับ ( ย่อหน้านี้ถอดความจากฉัน ) ดังนั้นเขาแนะนำ RAM (เหมือนในหน่วยความจำคอมพิวเตอร์) แทน DBs (นั่นคือสิ่งที่ฉันตีความคำแถลงของเขาในฐานะ) ไม่สมเหตุสมผลเพราะมันเหมือนกับการบอกว่าระเบียนทั้งหมดเป็นหน่วยความจำในการประมวลผลตลอดอายุการใช้งานของแอปพลิเคชัน …

2
สร้างดัชนีเทียบกับแก้ไขตารางเพิ่มดัชนี - MySQLism หรือ SQL Standard?
เพิ่งเจอปัญหาแปลก ๆ โดยขึ้นอยู่กับว่าฉันจะสร้างดัชนีได้อย่างไรจำเป็นต้องใช้ชื่อดัชนี http://dev.mysql.com/doc/refman/5.5/en/create-index.html http://dev.mysql.com/doc/refman/5.5/en/alter-table.html CREATE INDEX `random_name` ON `my_table` (`my_column`); # Requires an index name ALTER TABLE `my_table` ADD INDEX (`my_column`); # Does not require an index name สำหรับฉันแล้วดูเหมือนว่าการเรียก CREATE INDEX ไม่ควรใช้ชื่อดัชนี ฉันสงสัยว่านี่เป็น MySQLism หรือมาตรฐาน SQL ใช่หรือไม่

2
"ดัชนีการจับคู่บางส่วน" คืออะไร
ฉันกำลังพยายามเรียนรู้เพิ่มเติมเกี่ยวกับตัวดำเนินการแบบสอบถาม "การอ้างอิงต่างประเทศ" ที่แนะนำใน SQL Server 2016 มีข้อมูลไม่มากนัก Microsoft ประกาศมันนี่และฉัน blogged เกี่ยวกับเรื่องนี้ที่นี่ ผู้ประกอบการใหม่สามารถมองเห็นได้โดยการลบแถวจากตารางผู้ปกครองที่มี 254 หรือเข้ามาเพิ่มเติมอ้างอิงที่สำคัญต่างประเทศ: การเชื่อมโยง dbfiddle มีจำนวนการนับที่แตกต่างกันสามรายการที่แสดงในรายละเอียดผู้ประกอบการ การอ้างอิงคีย์ต่างประเทศนับเป็นจำนวนของคีย์ต่างประเทศที่เข้ามา ไม่มีการนับดัชนีที่ตรงกันคือจำนวนกุญแจต่างประเทศที่เข้ามาโดยไม่มีดัชนีที่เหมาะสม การตรวจสอบว่าตารางที่อัปเดตหรือถูกลบจะไม่ละเมิดข้อ จำกัด ดังกล่าวจะต้องสแกนตารางลูก ฉันไม่รู้ว่าการจับคู่ดัชนีบางส่วนหมายถึงอะไร ดัชนีการจับคู่บางส่วนในบริบทนี้คืออะไร ฉันไม่สามารถทำงานต่อไปนี้ได้: ดัชนีที่กรองแล้ว การวางคอลัมน์คีย์ต่างประเทศเป็นINCLUDEคอลัมน์สำหรับดัชนี สร้างดัชนีด้วยคอลัมน์ foreign key เป็นคอลัมน์ key ที่สอง ดัชนีคอลัมน์เดี่ยวสำหรับปุ่มต่างประเทศหลายคอลัมน์ การสร้างดัชนีครอบคลุมหลายรายการเพื่อเปิดใช้งานแผน "เข้าร่วมดัชนี" สำหรับคีย์ต่างประเทศหลายคอลัมน์ Dan Guzmanชี้ให้เห็นว่าคีย์ต่างประเทศหลายคอลัมน์สามารถจับคู่ดัชนีแม้ว่าคีย์ดัชนีจะอยู่ในลำดับที่แตกต่างจากคอลัมน์คีย์ต่างประเทศ รหัสของเขาอยู่ที่นี่ในกรณีที่มีคนสามารถใช้เป็นจุดเริ่มต้นเพื่อหาข้อมูลเพิ่มเติมเกี่ยวกับดัชนีการจับคู่บางส่วน

1
การเพิ่มประสิทธิภาพดัชนีพร้อมวันที่
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 7 ปีที่ผ่านมา ฉันมีตารางวัตถุขนาดใหญ่ (แถว 15M +) ใน PostgreSQL 9.0.8 ซึ่งฉันต้องการค้นหาเขตข้อมูลที่ล้าสมัย ฉันต้องการแบ่งคำถามเป็นล้าน ๆ เพื่อความยืดหยุ่นในการปรับขนาดและการทำงานพร้อมกันและฉันต้องการดึงข้อมูลทั้งหมดด้วยฟิลด์ updated_at ด้วยวันที่ไม่กี่วันที่ผ่านมา ฉันได้ลองใช้ดัชนีจำนวนมากและข้อความค้นหาหลายล้านรายการและดูเหมือนว่าฉันจะไม่สามารถทำงานได้ภายใน 100 วินาทีด้วยฮาร์ดแวร์ Ronin ของ Heroku ฉันกำลังมองหาคำแนะนำที่ฉันไม่ได้พยายามทำให้มีประสิทธิภาพมากที่สุด ลอง # 1 EXPLAIN ANALYZE SELECT count(*) FROM objects WHERE (date(updated_at)) < (date(now())-7) AND id >= 5000001 AND id …

2
ฉันจะจัดทำดัชนี UUID ใน Postgres ได้อย่างไร
ฉันใหม่กับ PostgreSQL และค่อนข้างใหม่สำหรับฐานข้อมูลโดยทั่วไป มีวิธีที่กำหนดไว้ว่าเราควรทำดัชนีค่าUUIDใน Postgres หรือไม่? ฉันแยกระหว่างการใช้การแฮชและการใช้คู่กรณีเว้นแต่ว่ามีบางอย่างในตัวที่ใช้โดยอัตโนมัติ สิ่งที่ฉันใช้คือการจัดการข้อมูลจำนวนมหาศาล ดัชนี "text_ops" ตระกูลโอเปอเรเตอร์ SP-GiST ใช้ trie เนื่องจาก UUID นั้นค่อนข้างยาวและแตกต่างกันมากเสียงเหล่านี้น่าดึงดูดแม้ว่าฉันจะทำการค้นหาแบบเต็มเท่านั้น นอกจากนี้ยังมีตัวเลือกแฮช Hashing คือ O (1) และฉันไม่จำเป็นต้องทำการเปรียบเทียบใด ๆ นอกเหนือจากความเท่าเทียมกันแน่นอน แต่เนื่องจาก UUID ค่อนข้างยาวฉันกลัวว่าการสร้างแฮชจากพวกเขาจะเสียเวลามาก หรือสิ่งนี้ขึ้นอยู่กับระบบมากเกินไปและใช้เฉพาะหรือไม่ ฉันควรใช้bigserialในกรณีส่วนใหญ่ แต่ฉันถูกบอกให้ใช้uuidสำหรับเรื่องนี้ เราต้องการuuidเพราะเราอาจมีเซิร์ฟเวอร์หลายเครื่องที่ใช้ฐานข้อมูลที่แตกต่างกันดังนั้นจึงไม่มีการรับประกันว่าเราจะมี bigint ที่ไม่ซ้ำกัน เราสามารถใช้ลำดับที่แตกต่างกัน (และ seed) สำหรับแต่ละเซิร์ฟเวอร์ แต่ก็ยังไม่ยืดหยุ่นเท่ากับ UUID ตัวอย่างเช่นเราจะไม่สามารถโยกย้ายรายการฐานข้อมูลจากเซิร์ฟเวอร์หนึ่งไปยังเซิร์ฟเวอร์อื่นโดยไม่ต้องแปลง ID และการอ้างอิงของพวกเขาทุกที่
26 postgresql  index  uuid 

6
จัดทำดัชนีประสิทธิภาพการทำงานเป็นเปิดเมื่อเทียบกับตำแหน่งที่
ฉันมีสองตาราง @T1 TABLE ( Id INT, Date DATETIME ) @T2 TABLE ( Id INT, Date DATETIME ) ตารางเหล่านี้มีดัชนีที่ไม่ทำคลัสเตอร์ (Id, Date) และฉันเข้าร่วมตารางเหล่านี้ SELECT * FROM T1 AS t1 INNER JOIN T2 AS t2 ON t1.Id = t2.Id WHERE t1.Date <= GETDATE() AND t2.Date <= GETDATE() สิ่งนี้สามารถเขียนเป็น SELECT * FROM T1 AS …

2
จะรู้ได้อย่างไรว่าเมื่อไหร่ที่ฉันมีดัชนีมากเกินไป
ใช้ Microsoft SQL Server Profiler ทุกครั้งจากนั้นแนะนำฉันด้วยดัชนีและสถิติใหม่ ๆ ที่จะสร้าง ("... 97% การปรับปรุงโดยประมาณ ... ") จากความเข้าใจของฉันทุกดัชนีเพิ่มสามารถทำให้SELECTแบบสอบถามSQL ได้เร็วขึ้น แต่ยังUPDATEหรือINSERTแบบสอบถามช้าลงเนื่องจากดัชนีจะต้องมีการปรับ สิ่งที่ฉันสงสัยคือเมื่อฉันมีดัชนี / สถิติ "มากเกินไป" อาจจะไม่มีคำตอบที่ชัดเจนเกี่ยวกับเรื่องนี้ แต่บางกฎของหัวแม่มือ

1
ดัชนี: จำนวนเต็มกับประสิทธิภาพของสตริงถ้าจำนวนโหนดเท่ากัน
ฉันกำลังพัฒนาแอพพลิเคชั่นใน Ruby on Rails ด้วยฐานข้อมูล PostgreSQL (9.4) สำหรับกรณีการใช้งานของฉันคอลัมน์ในตารางจะถูกค้นหาบ่อยมากเนื่องจากทั้งจุดของแอปพลิเคชันกำลังค้นหาแอตทริบิวต์ที่เฉพาะเจาะจงมากในแบบจำลอง ฉันกำลังตัดสินใจว่าจะใช้integerชนิดหรือเพียงแค่ใช้ประเภทสตริงทั่วไป (เช่นcharacter varying(255), ซึ่งเป็นค่าเริ่มต้นใน Rails ) สำหรับคอลัมน์ที่เป็นผมไม่แน่ใจว่าสิ่งที่แตกต่างของประสิทธิภาพการทำงานจะอยู่ในดัชนี คอลัมน์เหล่านี้เป็น enums มีขนาดคงที่สำหรับจำนวนค่าที่เป็นไปได้ที่สามารถมีได้ ส่วนใหญ่ความยาว enum ไม่เกิน 5 หมายถึงดัชนีจะมีมากขึ้นหรือน้อยคงที่ตลอดอายุการใช้งานของโปรแกรม ; ดังนั้นจำนวนเต็มและดัชนีสตริงจะเหมือนกันในจำนวนโหนด อย่างไรก็ตามสตริงที่จะทำดัชนีอาจมีความยาวประมาณ 20 ตัวอักษรซึ่งในหน่วยความจำประมาณ 5x ของจำนวนเต็ม (ถ้าจำนวนเต็ม 4 ไบต์และสตริงนั้นเป็น ASCII บริสุทธิ์ที่ 1 ไบต์ต่อตัวอักษรดังนั้นสิ่งนี้จะเก็บไว้) ฉันไม่รู้ว่าเอ็นจิ้นฐานข้อมูลทำการค้นหาดัชนีอย่างไร แต่ถ้ามันจำเป็นต้อง "สแกน" สตริงจนกว่าจะตรงกันทั้งหมดดังนั้นในสาระสำคัญซึ่งหมายความว่าการค้นหาสตริงจะช้ากว่าการค้นหาจำนวนเต็ม 5 เท่า "สแกน" จนกระทั่งตรงกับการค้นหาจำนวนเต็มจะเป็น 4 ไบต์แทน 20 นี่คือสิ่งที่ฉันจินตนาการ ค่าการค้นหาคือ …

2
ปรับปรุงประสิทธิภาพของ COUNT / GROUP-BY ในตาราง PostgresSQL ขนาดใหญ่?
ฉันใช้ PostgresSQL 9.2 และมีความสัมพันธ์ 12 คอลัมน์มีประมาณ 6,700,000 แถว มันมีโหนดในพื้นที่ 3 มิติแต่ละคนอ้างอิงผู้ใช้ (ผู้สร้างมัน) ในการสอบถามผู้ใช้รายใดที่สร้างจำนวนโหนดที่ฉันทำต่อไปนี้ (เพิ่มexplain analyzeสำหรับข้อมูลเพิ่มเติม): EXPLAIN ANALYZE SELECT user_id, count(user_id) FROM treenode WHERE project_id=1 GROUP BY user_id; QUERY PLAN --------------------------------------------------------------------------------------------------------------------------- HashAggregate (cost=253668.70..253669.07 rows=37 width=8) (actual time=1747.620..1747.623 rows=38 loops=1) -> Seq Scan on treenode (cost=0.00..220278.79 rows=6677983 width=8) (actual time=0.019..886.803 rows=6677983 loops=1) …

5
SARGable WHERE clause สำหรับสองคอลัมน์วันที่
ฉันมีคำถามที่น่าสนใจเกี่ยวกับ SARGability คืออะไร ในกรณีนี้มันเกี่ยวกับการใช้เพรดิเคตกับความแตกต่างระหว่างสองคอลัมน์วันที่ นี่คือการตั้งค่า: USE [tempdb] SET NOCOUNT ON IF OBJECT_ID('tempdb..#sargme') IS NOT NULL BEGIN DROP TABLE #sargme END SELECT TOP 1000 IDENTITY (BIGINT, 1,1) AS ID, CAST(DATEADD(DAY, [m].[severity] * -1, GETDATE()) AS DATE) AS [DateCol1], CAST(DATEADD(DAY, [m].[severity], GETDATE()) AS DATE) AS [DateCol2] INTO #sargme FROM sys.[messages] AS [m] …

5
วิธีสร้างดัชนีตามเงื่อนไขใน MySQL
จะสร้างดัชนีเพื่อกรองช่วงหรือเซตย่อยของตารางใน MySQL ได้อย่างไร? AFAIK เป็นไปไม่ได้ที่จะสร้างโดยตรง แต่ฉันคิดว่ามันเป็นไปได้ที่จะจำลองคุณลักษณะนี้ ตัวอย่าง: ฉันต้องการสร้างดัชนีสำหรับNAMEคอลัมน์สำหรับแถวด้วยSTATUS = 'ACTIVE' ฟังก์ชันนี้จะเรียกว่าดัชนีที่กรองแล้วใน SQL Server และดัชนีบางส่วนใน Postgres

4
การทำดัชนีพื้นที่ใหญ่กว่าพื้นที่ข้อมูลนั้นเป็นสิ่งที่ไม่ดีหรือไม่?
บ่อยครั้งที่ฉันต้องการเรียกใช้แบบสอบถามกับตารางขนาดใหญ่ที่ไม่มีดัชนีที่ถูกต้อง ดังนั้นฉันขอให้ DBA สร้างดัชนีดังกล่าว สิ่งแรกที่เขาทำคือดูที่ตารางสถิติและดูขนาดพื้นที่ดัชนี บ่อยครั้งที่เขาจะบอกให้ฉันหาวิธีแก้ปัญหาทางเลือกเพราะ "ดัชนีนั้นใหญ่กว่าตาราง" เขารู้สึกว่าดัชนีต้องเล็กกว่าข้อมูลเพราะเขาบอกฉันว่า "คุณเคยเห็นดัชนีในหนังสือหรือไม่มันเล็กกว่าหนังสือมากและนั่นเป็นวิธีที่ดัชนีตารางควร" ฉันไม่รู้สึกว่าปรัชญาของเขาถูกต้อง แต่ฉันไม่สามารถท้าทายเขาได้เพราะเขาเป็นผู้นำ DBA และฉันเป็นนักพัฒนา ฉันรู้สึกว่าแบบสอบถามต้องการดัชนีควรสร้างดัชนีแทนการค้นหา "วิธีแก้ไข" ที่เพิ่งสร้าง SP ที่ไม่สามารถอ่านได้และไม่สามารถแก้ไขได้ ฉันกำลังเลือกคอลัมน์ที่ต้องการเท่านั้น ปัญหาคือฉันกำลังกรองตามวันที่ดังนั้นเครื่องมือจำเป็นต้องทำการสแกนตารางเพื่อให้ตรงกับคอลัมน์ แบบสอบถามทำงานวันละครั้งตอนกลางคืนเพื่อรวบรวมสถิติ แต่ใช้เวลา 15 นาทีในการทำงาน (เรามีกฎที่ยากและรวดเร็ว: ไม่มีขั้นตอนใดที่ควรใช้เวลามากกว่า 3 นาที) DBA แสดงสถิติดัชนีให้ฉัน มีประมาณ 10 ดัชนีในตารางนั้นมีเพียง 6 ดัชนีเท่านั้นที่ใช้ (สถิติแสดงให้เห็นว่ามีจำนวนการเข้าศูนย์ถึง 4 ของดัชนี) นี่เป็นระบบขนาดใหญ่ที่มีผู้พัฒนามากกว่า 20 คนเข้าร่วม ดัชนีถูกสร้างขึ้นด้วยเหตุผลใดก็ตามและอาจไม่ได้ใช้อีกต่อไป เราจำเป็นต้องสนับสนุน SQL Server 2008 เนื่องจากเป็นสิ่งที่ฐานข้อมูลการทดสอบทำงานอยู่ แต่ลูกค้าทั้งหมดในปี 2014 และ …
22 sql-server  index 

1
เมื่อใดควรใช้ sort_in_tempdb เมื่อสร้างดัชนีใหม่
เรากำลังถกเถียงกันว่าจะใช้ตัวเลือก SORT_IN_TEMPDB สำหรับตาราง DW ของเราหรือไม่ ความเข้าใจของฉันคือว่ามีการเขียนเพิ่มเติมเมื่อใช้ตัวเลือกนี้แม้ว่าพวกเขาจะเรียงตามลำดับมากขึ้น เรามี SAN (ซึ่งช้ามากในบางครั้ง) ดังนั้นในกรณีของเราเราต้องการ จำกัด จำนวนการเขียนให้มากที่สุด ฉันเชื่อว่า tempdb อยู่ใน LUN แยกต่างหาก (ชุดของดิสก์) เรามีพื้นที่ดิสก์มากมายในไฟล์ข้อมูลและไฟล์ tempdb ของเรา ในกรณีนี้เราจะได้ประโยชน์จากการใช้ SORT_IN_TEMPDB ไหม สิ่งหนึ่งที่ทำให้ฉันรู้สึกแย่คือความเห็นต่อคำตอบนี้ เมื่อสร้างดัชนีใหม่คุณจะต้องมีพื้นที่ว่างสองเท่าของดัชนี + 20% สำหรับการเรียงลำดับ โดยทั่วไปแล้วการสร้างดัชนีทุกครั้งในฐานข้อมูลของคุณคุณต้องการเพียง 120% ของดัชนีที่ใหญ่ที่สุดในฐานข้อมูลของคุณ หากคุณใช้ SORT_IN_TEMPDB คุณจะได้รับเพียง 20% คุณยังคงต้องการ aditional 100% ในไฟล์ข้อมูลของคุณ ยิ่งไปกว่านั้นการใช้ sort in tempdb จะเพิ่มการโหลด IO ของคุณอย่างมากเนื่องจากแทนที่จะเขียนดัชนีหนึ่งครั้งไปยัง datafile ตอนนี้คุณเขียนมันหนึ่งครั้งไปยัง tempdb …

2
LIKE ใช้ดัชนี CHARINDEX ไม่ได้หรือ
คำถามนี้เป็นคำถามที่เกี่ยวข้องกับคำถามเก่าของฉัน ข้อความค้นหาด้านล่างนี้ใช้เวลาดำเนินการ 10 ถึง 15 วินาที: SELECT [customer].[Customer name],[customer].[Sl_No],[customer].[Id] FROM [company].dbo.[customer] WHERE (Charindex('123456789',CAST([company].dbo.[customer].[Phone no] AS VARCHAR(MAX)))>0) ในบางบทความฉันเห็นว่าการใช้CASTและCHARINDEXจะไม่ได้รับประโยชน์จากการจัดทำดัชนี นอกจากนี้ยังมีบทความบางส่วนที่กล่าวว่าการใช้LIKE '%abc%'จะไม่ได้รับประโยชน์จากการทำดัชนีในขณะที่LIKE 'abc%': http://bytes.com/topic/sql-server/answers/81467-using-charindex-vs-like-where /programming/803783/sql-server-index-any-improvement- สำหรับ -like-query http://www.sqlservercentral.com/Forums/Topic186262-8-1.aspx#bm186568 ในกรณีของฉันฉันสามารถเขียนแบบสอบถามเป็น: SELECT [customer].[Customer name],[customer].[Sl_No],[customer].[Id] FROM [company].dbo.[customer] WHERE [company].dbo.[customer].[Phone no] LIKE '%123456789%' แบบสอบถามนี้ให้ผลลัพธ์เช่นเดียวกับรายการก่อนหน้า ผมได้สร้างดัชนี nonclustered Phone noสำหรับคอลัมน์ เมื่อผมดำเนินการค้นหานี้มันจะทำงานในเวลาเพียง1 วินาที นี่เป็นการเปลี่ยนแปลงครั้งใหญ่เมื่อเทียบกับ14 วินาทีก่อนหน้านี้ วิธีการที่ไม่LIKE '%123456789%'ได้รับประโยชน์จากการจัดทำดัชนี? เหตุใดบทความที่ระบุจึงไม่สามารถปรับปรุงประสิทธิภาพได้ ฉันพยายามเขียนแบบสอบถามใหม่เพื่อใช้CHARINDEXแต่ประสิทธิภาพยังคงช้า เหตุใดจึงไม่CHARINDEXได้ประโยชน์จากการจัดทำดัชนีตามที่ปรากฏในLIKEแบบสอบถาม …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.