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

4
ทำไม NULL จึงถูกเรียงลำดับก่อน
ทำไมเมื่อเรามีค่า NULL ในคอลัมน์และเราเรียงตามค่าจากน้อยไปมาก NULL จะถูกเรียงลำดับก่อน select 1 as test union all select 2 union all select NULL union all select 3 union all select 4 order by test ผลลัพธ์ใน NULL 1 2 3 4 ฉันคิดว่า NULL หมายถึง "ไม่ทราบแน่ชัด" หรือเป็นไปได้ "ไม่ทราบ" หากเป็นจริงพวกเขาจะไม่เรียงลำดับล่าสุดเนื่องจากค่าอาจมากกว่าค่าอื่น ๆ ทั้งหมดหรือไม่ (หรือนี่เป็นตัวเลือกการจัดเรียงที่อื่น) ฉันใช้ SQL Server 2008R2 แต่ฉันสงสัยว่านี่เป็นความจริงในทุกเซิร์ฟเวอร์ SQL …

1
วิธีการรักษาลำดับขององค์ประกอบดั้งเดิมในอาร์เรย์ที่ไม่ผ่านการทดสอบ
รับสาย: 'ฉันคิดว่า PostgreSQL นั้นดี' ฉันต้องการทำงานกับคำแต่ละคำที่พบในสตริงนั้น โดยพื้นฐานแล้วฉันมีส่วนแยกต่างหากซึ่งฉันสามารถรับรายละเอียดคำศัพท์และต้องการที่จะเข้าร่วมอาร์เรย์ของสตริงนั้นในพจนานุกรมนี้ จนถึงตอนนี้ฉันมี: select word, meaning, partofspeech from unnest(string_to_array('I think that PostgreSQL is nifty',' ')) as word from table t join dictionary d on t.word = d.wordname; สิ่งนี้ทำให้พื้นฐานของสิ่งที่ฉันหวังว่าจะทำได้สำเร็จ แต่ไม่ได้รักษาลำดับคำเดิมไว้ คำถามที่เกี่ยวข้อง: PostgreSQL ไม่ถูกต้อง () พร้อมหมายเลของค์ประกอบ

2
ประสิทธิภาพการเลื่อนหน้าด้วยการเรียงลำดับที่กำหนดเองได้หลายล้านแถว
ในแอปพลิเคชันของเราเรามีตารางที่ผู้ใช้สามารถเลื่อนดูระเบียนจำนวนมาก (10-20 ล้าน) กริดรองรับการเรียงลำดับจากน้อยไปมากและจากมากไปน้อยในคอลัมน์จำนวนมาก (20+) ค่าจำนวนมากยังไม่ซ้ำกันดังนั้นแอปพลิเคชันจึงเรียงลำดับตาม id เป็นตัวแบ่งไทม์เบรกเพื่อให้แน่ใจว่าแถวปรากฏบนหน้าเดียวกันเสมอ ตัวอย่างเช่นหากผู้ใช้ต้องการเรียงลำดับตามขนาดวิดเจ็ต (เริ่มต้นที่ใหญ่ที่สุด) แอปพลิเคชันจะสร้างคิวรีที่มีลักษณะดังนี้: SELECT TOP 30 * -- (Pretend that there is a list of columns here) FROM Test -- WHERE widgetSize > 100 ORDER BY widgetSize DESC, id ASC เคียวรีนี้ใช้เวลา ~ 15s ในการรัน (ด้วยข้อมูลที่แคช) ค่าใช้จ่ายส่วนใหญ่ดูเหมือนจะเรียงลำดับแถว ~ 1.3m โดย widgetSize ในความพยายามที่จะปรับแต่งแบบสอบถามนี้ฉันค้นพบว่าถ้าฉันเพิ่มในWHEREประโยคที่ จำกัด …

1
เรียงลำดับการรั่วไหลไปยัง tempdb แต่แถวโดยประมาณจะเท่ากับแถวจริง
บน SQL Server 2016 SP2 ที่มีหน่วยความจำสูงสุดตั้งไว้ที่ 25GB เรามีแบบสอบถามที่ดำเนินการประมาณ 80 ครั้งในหนึ่งนาที แบบสอบถามรั่วไหลประมาณ 4,000 หน้าไปยัง tempdb ซึ่งทำให้ IO จำนวนมากบนดิสก์ของ tempdb เมื่อคุณดูที่แผนแบบสอบถาม (แบบสอบถามแบบง่าย) คุณจะเห็นว่าจำนวนแถวโดยประมาณเท่ากับจำนวนแถวจริง แต่ยังคงเกิดการรั่วไหล ดังนั้นสถิติที่ล้าสมัยไม่สามารถเป็นสาเหตุของปัญหาได้ ฉันทำการทดสอบและแบบสอบถามต่อไปนี้รั่วไหลไปยัง Tempdb: select id --uniqueidentifier from SortProblem where [status] ='A' order by SequenceNumber asc option (maxdop 1) แต่ถ้าฉันเลือกคอลัมน์อื่นจะไม่มีการรั่วไหลเกิดขึ้น: select startdate --datetime from SortProblem where [status] ='A' order …

4
คิวรีช้าลงบนโต๊ะขนาดใหญ่ที่มี GROUP BY และ ORDER BY
ฉันมีตารางที่มี 7.2 ล้านสิ่งอันดับซึ่งมีลักษณะดังนี้: table public.methods column | type | attributes --------+-----------------------+---------------------------------------------------- id | integer | not null DEFAULT nextval('methodkey'::regclass) hash | character varying(32) | not null string | character varying | not null method | character varying | not null file | character varying | not null type | character …


4
มีการเปรียบเทียบเรียงลำดับสตริงต่อไปนี้ตามลำดับต่อไปนี้ 1,2,3,6,10,10A, 10B, 11 หรือไม่
ฉันมีฐานข้อมูลที่มีคอลัมน์ VARCHAR ที่มีจำนวนเต็มความยาวแตกต่างกัน ฉันต้องการจัดเรียงพวกเขาดังนั้น 10 มาหลังจาก 9 ไม่ใช่ 1 และ 70A มาหลังจาก 70 ฉันสามารถทำได้ด้วยPATINDEX () , คำสั่ง CTE และ CASE ในส่วนคำสั่ง WHERE อย่างไรก็ตามฉันสงสัยว่ามีการเปรียบเทียบที่นี่จะไม่จำเป็น

2
ฉันจะทราบได้อย่างไรว่ามีการใช้ดัชนีเพื่อจัดเรียงใน MySQL หรือไม่
ฉันมีแบบสอบถามที่มีส่วนคำสั่ง ORDER BY ซึ่งใช้คอลัมน์ซึ่งเป็นคอลัมน์สุดท้ายของดัชนีที่ใช้ในส่วนคำสั่ง WHERE ซึ่งเป็นรูปแบบหลัก: SELECT cols FROM tables WHERE col_1 = x AND col_2 = y AND col_3 = z ORDER BY col_4 และดัชนีจะถูกสร้างในคอลัมน์ (col_1, col_2, col_3, col_4) ตามลำดับ เมื่อฉันโปรไฟล์แบบสอบถามกว่า 99% ของเวลาที่ใช้ในสถานะ "ผลการเรียงลำดับ" col_4 เป็นคอลัมน์การประทับเวลาหากสร้างความแตกต่าง ฉันเข้าใจว่า ORDER BY สามารถใช้ดัชนีภายใต้สถานการณ์บางอย่างเท่านั้น แต่ฉันยังคงประหลาดใจเล็กน้อยเมื่อต้องใช้เครื่องมือเพิ่มประสิทธิภาพ
10 mysql  index  sorting 

1
วิธีใช้ดัชนีเพื่อเพิ่มความเร็วในการเรียงลำดับใน postgres
ฉันใช้ postgres 9.4 The messagesมีสคีมาดังต่อไปนี้: ข้อความเป็นของ feed_id และโพสต์ _at และข้อความสามารถมีข้อความหลัก (ในกรณีที่ตอบกลับ) Table "public.messages" Column | Type | Modifiers ------------------------------+-----------------------------+----------- message_id | character varying(255) | not null feed_id | integer | parent_id | character varying(255) | posted_at | timestamp without time zone | share_count | integer | Indexes: "messages_pkey" PRIMARY KEY, …

5
จะกำหนด sort_buffer_size ที่เหมาะสมได้อย่างไร?
ฉันอ่านจากไฟล์กำหนดค่าตัวอย่างซึ่งระบุสิ่งต่อไปนี้: # Sort buffer is used to perform sorts for some ORDER BY and GROUP BY # queries. If sorted data does not fit into the sort buffer, a disk # based merge sort is used instead - See the "Sort_merge_passes" # status variable. Allocated per thread if sort is …

1
สั่งซื้อโดยการเปรียบเทียบตัวอักษรและตัวเลขผสมกัน
เราจำเป็นต้องทำการรายงานบางอย่างเกี่ยวกับค่าที่มักจะรวมสตริงของตัวเลขและตัวอักษรที่ต้องเรียงลำดับ 'ตามธรรมชาติ' สิ่งที่ต้องการเช่น "P7B18" หรือ "P12B3" @ สายอักขระส่วนใหญ่จะเป็นลำดับของตัวอักษรจากนั้นจึงสลับตัวเลข จำนวนของกลุ่มเหล่านี้และความยาวของแต่ละกลุ่มอาจแตกต่างกันไป เราต้องการเรียงลำดับตัวเลขเหล่านี้ตามลำดับตัวเลข เห็นได้ชัดว่าถ้าฉันจัดการค่าสตริงเหล่านั้นโดยตรงด้วยORDER BY"P12B3" จะมาก่อน "P7B18" เนื่องจาก "P1" เก่ากว่า "P7" แต่ฉันต้องการย้อนกลับเพราะ "P7" อยู่ก่อน "P12" ฉันยังต้องการที่จะทำการเปรียบเทียบช่วงเช่น@bin < 'P13S6'หรือบางอย่างเช่น ฉันไม่ต้องจัดการกับจำนวนจุดลอยตัวหรือจำนวนลบ; สิ่งเหล่านี้จะเป็นจำนวนเต็มที่ไม่ติดลบที่เรากำลังทำอยู่ ความยาวสตริงและจำนวนของเซกเมนต์อาจเป็นไปได้เองโดยไม่ จำกัด ขอบเขต ในกรณีของเราปลอกสตริงนั้นไม่สำคัญแม้ว่าจะมีวิธีการในการเปรียบเทียบการเรียงตัว แต่คนอื่น ๆ อาจพบว่ามีประโยชน์ ส่วนที่น่าเกลียดที่สุดของทั้งหมดนี้คือฉันต้องการที่จะทำทั้งการสั่งซื้อและการกรองช่วงในWHEREข้อ ถ้าฉันทำสิ่งนี้ใน C # มันจะเป็นงานที่ค่อนข้างง่าย: ทำการแยกวิเคราะห์เพื่อแยกอัลฟาจากตัวเลขใช้ IComparable และคุณก็ทำได้โดยทั่วไป แน่นอนว่า SQL Server ไม่ได้เสนอฟังก์ชั่นที่คล้ายกันอย่างน้อยที่สุดเท่าที่ฉันทราบ ใครรู้เทคนิคที่ดีในการทำงานนี้หรือไม่? มีความสามารถเล็กน้อยเผยแพร่ในการสร้างประเภท CLR ที่กำหนดเองที่ใช้ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.