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

การเขียนแบบสอบถามเพื่อร้องขอหรือเปลี่ยนแปลงข้อมูลที่เก็บไว้ในฐานข้อมูลหรือระบบการจัดการข้อมูลอื่น ๆ คำถามควรมีคำจำกัดความของตารางและดัชนีข้อมูลตัวอย่างผลลัพธ์ที่คาดหวังและแท็กสำหรับระบบเฉพาะ (เช่น MySQL, PostgreSQL, Oracle, SQL Server, MongoDB)

5
จัดกลุ่มตามชั่วโมงในชุดข้อมูลขนาดใหญ่
ใช้ MS SQL 2008 ฉันกำลังเลือกเขตข้อมูลเฉลี่ยจาก 2.5 ล้านระเบียน แต่ละระเบียนแสดงถึงหนึ่งวินาที MyField เป็นค่าเฉลี่ยรายชั่วโมงของบันทึก 1 วินาทีเหล่านั้น แน่นอนว่าซีพียูเซิร์ฟเวอร์ฮิต 100% และการเลือกใช้เวลานานเกินไป ฉันจำเป็นต้องบันทึกค่าเฉลี่ยเหล่านั้นเพื่อให้ SQL ไม่จำเป็นต้องเลือกระเบียนเหล่านั้นทั้งหมดในแต่ละคำขอ สิ่งที่สามารถทำได้? SELECT DISTINCT CONVERT(VARCHAR, [timestamp], 1)+' '+ CAST(DATEPART(Hh,[timestamp]) as VARCHAR) AS TimeStampHour, MIN([timestamp]) as TimeStamp, AVG(MyField) As AvgField FROM MyData WHERE TimeStamp > '4/10/2011' GROUP BY CONVERT(VARCHAR, [timestamp], 1)+' '+ CAST(DATEPART(Hh,[timestamp]) as …
12 sql-server  query 

3
คุณจะล้างแผนแบบสอบถามเก่าทั้งหมดจากภายใน Microsoft SQL Server ได้อย่างไร
เรามีแอพพลิเคชั่นชั้นวางที่ใช้ฐานข้อมูล Microsoft SQL ภายในแอปพลิเคชันนี้เราเลือกและเลือกเกณฑ์การเลือกที่หลากหลายสำหรับแต่ละรายงาน แอปพลิเคชันนี้เรียกใช้รายงานเหล่านี้ ฉันเชื่อว่าเรามีปัญหาแผนแบบสอบถาม รายงานฉบับแรกที่เราเรียกใช้ในแต่ละวันทำงานเร็วมาก 7 นาที รายงานใด ๆ ที่เราเรียกใช้หลังจากรายงานแรกใช้เวลาเกินหนึ่งชั่วโมง ทุกคืนเราเรียกใช้ภารกิจที่กำหนดเวลาไว้ซึ่งหยุดและเริ่ม SQL Server Agent และ SQL Server มีฐานข้อมูลอื่นประมาณ 25 ภายใน SQL อินสแตนซ์หนึ่งนี้ ไม่มีฐานข้อมูลอื่นที่มีปัญหาด้านประสิทธิภาพเพียงอย่างเดียวที่ออกผลิตภัณฑ์ชั้นวางที่ฉันกล่าวถึงก่อนหน้านี้ มีวิธีล้างแผนการสืบค้นทั้งหมดที่ SQL Server มีอยู่ในหน่วยความจำหรือไม่? ฉันจะทำสิ่งนี้ได้อย่างไรโดยไม่กระทบกับผู้ใช้ 30 รายหรือมากกว่านั้นที่ใช้ฐานข้อมูลอื่นบนเซิร์ฟเวอร์เดียวกัน

3
จัดกลุ่มระเบียนตามช่วงเวลา
ฉันมีตารางที่มีสคีมาดังต่อไปนี้และฉันต้องการกำหนดคิวรีที่สามารถจัดกลุ่มข้อมูลตามช่วงเวลา ( เช่นเรคคอร์ดต่อนาที ) จากนั้นให้ผลรวมของการเปลี่ยนแปลง SnapShotValue ตั้งแต่กลุ่มก่อนหน้า ในปัจจุบัน SnapShotValue เพิ่มขึ้นเรื่อย ๆ ดังนั้นฉันจึงต้องการเพียงผลรวมของความแตกต่าง ใครสามารถช่วยกับแบบสอบถาม SQL Server T-SQL ที่อาจทำเช่นนี้? ฉันเปิดให้เปลี่ยนสคีมา แต่นี่คือสิ่งที่ฉันมีอยู่ในปัจจุบัน schema CaptureTime (datetime) SnapShotValue (int) ข้อมูลตัวอย่าง 1 Jan 2012 00:00:00, 100 1 Jan 2012 00:00:30, 125 1 Jan 2012 00:01:00, 200 1 Jan 2012 00:01:30, 300 1 Jan 2012 00:02:15, 400 …

3
วิธีการนับหลายครั้งในหนึ่งแบบสอบถาม?
ฉันนับระเบียนด้วยคำค้นหาเช่น SELECT COUNT(col1) FROM table1 WHERE col1 LIKE '%something%' SELECT COUNT(col1) FROM table1 WHERE col1 LIKE '%another%' SELECT COUNT(col1) FROM table1 WHERE col1 LIKE '%word%' สำหรับการนับแต่ละครั้ง mysql จำเป็นต้องเดินตามตารางและนี่เป็นปัญหาใหญ่หากมีตารางยาวและข้อความค้นหาจำนวนมาก ฉันสงสัยว่ามีวิธีการนับทั้งหมดในหนึ่งแบบสอบถามหรือไม่ ในกรณีนี้เมื่อ mysql เดินผ่านแต่ละแถวมันจะประมวลผลการนับทั้งหมดและไม่จำเป็นต้องสแกนทั้งตารางซ้ำไปซ้ำมา

5
เต็มรูปแบบเข้าร่วมใน MS Access
ฉันมีรายชื่อพนักงานสองคน: List A: StaffID Supervisor ==================== 0001234 NULL 0001235 0001234 0001237 0001234 0001239 0001237 และ List B: StaffID Supervisor ==================== 0001234 NULL 0001235 0001234 0001238 0001235 0001239 0001235 และฉันต้องการผลลัพธ์ต่อไปนี้: StaffID SupervisorA SupervisorB =================================== 0001234 NULL NULL 0001235 0001234 0001234 0001237 0001234 NULL 0001238 NULL 0001235 0001239 0001237 0001235 โปรดสังเกตว่ารหัสพนักงานจากรายการ A …
11 query  join  ms-access 

5
วิธีที่ดีที่สุดในการค้นหาจำนวนระเบียนที่ไม่มีหมายเลขโทรศัพท์ที่เหมาะสมใน SQL Server คืออะไร?
ฉันมีสาขาที่ผู้คนในอดีตสามารถใช้เพื่อให้คุณค่าได้อย่างอิสระ ฉันต้องระบุระเบียนที่ไม่มีค่าที่เหมาะสมเพื่อให้ฉันสามารถทำความสะอาดได้ ฉันได้ดูรอบนี้ใน SSIS ความชอบของฉันคือการใช้องค์ประกอบสคริปต์ที่มีการแสดงออก regex ในบางรหัส C # ตามด้วยการเปลี่ยนเส้นทาง ถึงกระนั้นฉันก็สงสัยว่ามีวิธีใน SSIS ที่จะทำเช่นนี้โดยไม่ต้องหันไปใช้ C # ฉันไม่ได้มีโชคมากมายในการค้นหาวิธีการค้นหาว่ามีกี่ระเบียนที่ไม่มีหมายเลขโทรศัพท์ที่เหมาะสม

3
แบบสอบถามทั้งสองนี้เทียบเท่ากันอย่างมีเหตุผลหรือไม่
แบบสอบถามทั้งสองนี้เทียบเท่ากันอย่างมีเหตุผลหรือไม่ DECLARE @DateTime DATETIME = GETDATE() แบบสอบถาม 1 SELECT * FROM MyTable WHERE Datediff(DAY, LogInsertTime, @DateTime) > 7 แบบสอบถาม 2 SELECT * FROM MyTable WHERE LogInsertTime < @DateTime - 7 ถ้ามันไม่เท่ากันอย่างมีเหตุผลคุณช่วยให้ฉันมีเหตุผลเทียบเท่ากับการสืบค้นแรกเพื่อที่ WHERE clause สามารถใช้ดัชนีได้อย่างมีประสิทธิภาพ (เช่นกำจัดการตัดฟังก์ชั่น)?

4
ตรวจสอบว่า 2 ตาราง (บนเซิร์ฟเวอร์ที่แตกต่างกัน) มีข้อมูลที่แน่นอนเหมือนกัน
ดังนั้นดูเหมือนว่า บริษัท ที่โฮสต์ SQL Server ของเรามีปัญหากับการจำลองแบบจากเซิร์ฟเวอร์การผลิตไปยังเซิร์ฟเวอร์การสำรองข้อมูล ... ฉันเชื่อว่าบางส่วนของตารางได้ถูกจำลองอย่างถูกต้องแม้ว่า การจำลองแบบเสร็จสิ้นทุกวัน (หลังจากชั่วโมง) มีวิธีที่ฉันสามารถเปรียบเทียบ 2 ของตารางเดียวกัน 1 จากสำรอง vs 1 จากเซิร์ฟเวอร์การผลิตเพื่อดูว่าการจำลองแบบคืนที่ผ่านมาทำงานหรือไม่ วิธีเดียวที่ฉันสามารถค้นหาได้คือเรียกใช้แบบสอบถามต่อไปนี้บนเซิร์ฟเวอร์ทั้งสองและดูว่าผลลัพธ์ที่ตรงกับ "อาจ" หมายความว่าถึง 2 ตารางมีข้อมูลเดียวกันหรือไม่ SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM ( SELECT * FROM table_to_compare ) t1 ใช้รหัสข้างต้นดูเหมือนว่าตารางทำซ้ำได้สำเร็จเนื่องจากค่า checksum เหมือนกัน แต่ฉันไม่แน่ใจว่าวิธีนี้น่าเชื่อถือเพียงใด ไม่มีใครรู้วิธีที่ดีกว่าในการตรวจสอบนี้หรือถ้าเป็นวิธีที่ดี? ฉันใช้ SQL Server 2008 บนคอมพิวเตอร์ที่ใช้ Windows Server 2008 ขอบคุณ

3
Oracle: ฉันจะค้นหาตารางลำดับชั้นได้อย่างไร
พื้นหลัง นี่คือการสร้างมุมมองบางอย่างที่เราจะใช้สำหรับการรายงาน ฉันมีตารางของสถานที่คีย์ฟิลด์เป็น "สถานที่" และ "ผู้ปกครอง" โครงสร้างที่สองฟิลด์นี้สร้างระดับที่ชาญฉลาดจะอยู่ในแนวเดียวกันกับชื่อ บริษัท -> ชื่อวิทยาเขต -> ชื่ออาคาร -> ชื่อชั้น -> ชื่อห้อง ชื่อ บริษัท ยังคงเหมือนเดิมและชื่อวิทยาเขตจะยังคงเหมือนเดิมในกรณีนี้ โครงสร้างของสถานที่โดยทั่วไปมีลักษณะดังนี้: +-----------+ | Org. Name | +-----+-----+ | +-----v-----+ +--------------------+|Campus Name|+---+--+-------------+ | +--+--------+ | | | | | | | | | | +--+-----+ +------+-+ +--+----+ +---+---+ +--+| BLDG-01|+--+ | BLDG-02| …
10 oracle  query  view  hierarchy 

3
วิธีเพิ่มประสิทธิภาพของ Virgin Query ใน MS SQL Server
ฉันมีเว็บไซต์ ASP.NET ที่เป็นเจ้าของแคชข้อมูลและข้อมูลไม่เปลี่ยนแปลงเป็นเวลานานดังนั้นจึงไม่จำเป็นต้องสืบค้น SQL Server ครั้งที่สองด้วยแบบสอบถามเดียวกัน ฉันต้องปรับปรุงประสิทธิภาพของแบบสอบถามครั้งแรก (บริสุทธิ์) ที่ไปยัง SQL Server นั้น แบบสอบถามบางแห่งประมวลผลข้อมูลมากจนอาจทำให้ SQL Server ใช้งานtempdbได้ ฉันไม่ใช้ตัวแปร temp table หรือ temp tables ดังนั้น SQL Server ตัดสินใจที่จะใช้tempdbด้วยตนเองทุกครั้งที่ต้องการ ขนาดฐานข้อมูลของฉันคือ 16Gb ฉันมี RAM จริง 32Gb อยู่ในเครื่องเซิร์ฟเวอร์ ฉันเข้าใจว่ากลยุทธ์การแคช MS SQL Server พยายามเก็บข้อมูลใน RAM เพื่อเพิ่มความเร็วของการค้นหาที่คล้ายกันหากต้องการโหลดข้อมูลเดียวกันอีกครั้ง นอกจากนั้นมันจะพยายามใช้ RAM ที่มีอยู่แทน tempdb เพื่อเพิ่มความเร็วในการทำงานโดยไม่ทำให้เกิดการเข้าถึงดิสก์ ฉันคิดว่าเมื่อแบบสอบถามที่ต้องการเก็บบางสิ่งใน tempdb SQL Server มาและมี …

3
SQLITE: ปัญหาของแท็กและผลิตภัณฑ์
ฉันกำลังค้นหาวิธีในการสร้างแบบสอบถามเพื่อทำสิ่งต่อไปนี้: ลองพิจารณา 3 ตาราง: ผลิตภัณฑ์: รายชื่อผลิตภัณฑ์ แท็ก: รายการของแท็ก tag_ties: ตารางที่ใช้เชื่อมโยงแท็กกับผลิตภัณฑ์ ลองพิจารณาโครงสร้างนี้สำหรับแต่ละตาราง: ผลิตภัณฑ์: id (int, autoincrement) ชื่อ (varchar ชื่อของผลิตภัณฑ์) Tags: id (การสร้างอัตโนมัติภายใน) ป้ายกำกับ (varchar ป้ายกำกับของแท็ก) Tag_ties: id (int, autoincrement) tag_id (int หมายถึง id แท็ก) ref_id (int หมายถึงรหัสผลิตภัณฑ์) สิ่งที่ฉันต้องการ: รับผลิตภัณฑ์ทั้งหมดที่ติดแท็กด้วยแท็ก id 10, 11 และ 12 เช่น แบบสอบถามนี้ไม่ทำงานเนื่องจากจะส่งคืนผลิตภัณฑ์ที่มีแท็กอย่างน้อยหนึ่งรายการ: select p.name as name, p.id …
10 query  sqlite  subquery 

3
ปัญหาการค้นหา: สามารถมีได้เพียงคอลัมน์เดียวเท่านั้น
ใครช่วยบอกฉันทีว่ามีอะไรผิดปกติกับนิยามตารางนี้ รุ่น mysql คือ 5.1.52-log root@localhost spoolrdb> create table spoolqueue ( queue int, idx bigint not null auto_increment, status smallint, querystring varchar(2048), contenttype varchar(255), characterencoding varchar(16), body text, primary key(queue,idx) ); ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as …
10 mysql  query 

2
InnoDB หมดเวลาไม่ได้อธิบาย
ฉันได้เห็นการอัปเดตพื้นฐานบางอย่างหมดเวลาเมื่อเร็ว ๆ นี้และไม่สามารถระบุสาเหตุได้ ตัวอย่าง: // # Query_time: 51 Lock_time: 0 Rows_sent: 0 Rows_examined: 0 UPDATE photos SET position = position + 1 WHERE (photo_album_id = 40470); บันทึกเดียวกันไม่มีรายการที่มี Lock_time> 0 การเรียกใช้show innodb statusจะไม่เปิดเผยการล็อคที่เกี่ยวข้อง ปัญหานี้ดูเหมือนว่าจะมีผลกระทบกับตารางที่แตกต่างกันอย่างน้อย 5 ตารางตามบันทึกของเซิร์ฟเวอร์แอปของฉัน (ซึ่งแสดงMysql::Error: Lock wait timeout exceededข้อผิดพลาดที่เกี่ยวข้องกับแต่ละรายการที่เกี่ยวข้องในบันทึก mysql ช้า) มีความคิดว่าจะไปจากที่นี่ไหม? ฉันตีปลายตายในทุกทิศทาง ขอบคุณ แก้ไข: สร้างตาราง `photos` ( `id` …

3
วิธีการดึงข้อมูลข้อ จำกัด คีย์ต่างประเทศ
ฉันกำลังมองหาข้อความค้นหาที่อนุญาตให้ดึงข้อมูลคีย์ต่างประเทศ (แต่ละบรรทัด: ตารางอ้างอิงและฟิลด์, ตารางอ้างอิงและฟิลด์อ้างอิง) ของสคีมาทั้งหมด ฉันได้พบสิ่งนี้แล้ว แต่ไม่ได้ให้ข้อมูลทั้งหมดที่ฉันต้องการ: /programming/4389228/sql-for-oracle-to-check-if-a-constraint-export ขณะนี้ฉันกำลังดำเนินการอยู่และอาจสิ้นสุดด้วยวิธีแก้ไขปัญหาในนาที / ชั่วโมงถัดไป แต่ถ้าใครมีวิธีแก้ปัญหาการทำงานที่สมบูรณ์แล้วฉันจะดีใจที่ได้รู้ :)

3
ค้นหาการจับคู่ที่ดีที่สุดและเรียงลำดับ
ฉันพยายามเขียนแบบสอบถามตามบรรทัดเหล่านี้: select * from tbl where col1 = 1 and col2 = 2 and col3 = 3 order by ... ; ฉันต้องการผลลัพธ์ทั้งหมดก่อนซึ่งทั้งหมด 3 WHEREตรงกับเงื่อนไข (3/3) จากนั้นผลลัพธ์ทั้งหมดที่ตรงกับ 2 เงื่อนไขใด ๆ (2/3) และสุดท้ายผลลัพธ์ที่ตรงกับเงื่อนไข 1 ข้อ (1/3) ต้องมีการเรียงลำดับชุดผลลัพธ์ทั้ง 3 ชุดเหล่านี้โดย (col4, col5, col6)ชุดผลความต้องการที่จะได้รับคำสั่งจาก ฉันสามารถทำสิ่งนั้นในแบบสอบถามเดียวได้ไหม ตัวอย่างเช่น: ตัวอย่าง http://img708.imageshack.us/img708/1646/sampletableresult1.jpg สคริปต์เพื่อสร้างข้อมูลทดสอบ: IF EXISTS (SELECT * FROM …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.