ผู้ดูแลฐานข้อมูล

ถามตอบสำหรับผู้เชี่ยวชาญด้านฐานข้อมูลที่ต้องการพัฒนาทักษะฐานข้อมูลและเรียนรู้จากผู้อื่นในชุมชน

5
SQL Server ไม่เริ่มทำงานเมื่อเริ่มต้น Windows แต่เริ่มต้นด้วยตนเอง
บริการของ SQL Server (SQL Server 2008 R2 Express) ของอินสแตนซ์ของฉันมีประเภทการเริ่มต้น = อัตโนมัติ สองสามครั้งที่ผ่านมาฉันรีสตาร์ทคอมพิวเตอร์ของฉันบริการล้มเหลวในการเริ่มต้นด้วยตัวเอง แต่มันก็เริ่มต้นได้ดีเมื่อฉันเริ่มบริการด้วยตนเอง ตัวแสดงเหตุการณ์แสดงว่าบริการไม่สามารถเริ่มทำงานได้เนื่องจากการหมดเวลาเชื่อมต่อ มี 2 ​​รายการที่เกี่ยวข้องกับการหมดเวลานี้: รายการที่ 1 หมดเวลาถึง (30000 มิลลิวินาที) ในขณะที่รอบริการ SQL Server (SQLEXPRESS) เพื่อเชื่อมต่อ รายการที่ 2 บริการ SQL Server (SQLEXPRESS) ล้มเหลวในการเริ่มต้นเนื่องจากข้อผิดพลาดต่อไปนี้: บริการไม่ตอบสนองต่อการร้องขอการเริ่มต้นหรือการควบคุมในเวลาที่เหมาะสม ฉันตรวจสอบไฟล์ ERRORLOG และไม่มีข้อผิดพลาดในการบันทึกเวลาของรายการ Event Viewer เหล่านั้น ความคิดเห็นใด ๆ เกี่ยวกับสาเหตุของปัญหานี้หรือฉันจะตรวจสอบเพิ่มเติมได้อย่างไร

3
เหตุใดตารางจึงใช้คีย์หลักเป็นคีย์ต่างประเทศเพื่อตัวของมันเอง
เมื่อดูจากฐานข้อมูลฉันเจอตารางที่ใช้คีย์หลักเป็นรหัสต่างประเทศกับตัวเอง ฉันเคยเห็นว่าตารางสามารถมี foreign key เป็นของตัวเองเพื่อสร้างโครงสร้างลำดับชั้น แต่จะใช้คอลัมน์อื่นเพื่ออ้างอิงคีย์หลัก เนื่องจากคีย์หลักไม่ซ้ำกันในสถานการณ์นี้แถวจะไม่สามารถชี้กลับไปที่ตัวเองได้หรือไม่ นั่นดูเหมือนจะเป็นการเชื่อมโยงที่ซ้ำซากเพราะถ้าฉันมีแถวอยู่แล้วฉันก็มีแถวอยู่แล้ว มีเหตุผลใดที่จะทำเช่นนี้? ฉันมั่นใจว่าข้อ จำกัด นั้นถูกเขียนขึ้นมาอย่างนั้น (ไม่ใช่แค่ดูที่แผนภาพ) เพราะตารางและคอลัมน์เดียวกันนั้นถูกใช้สำหรับคำจำกัดความทั้งสองครึ่ง

3
Access (Jet) SQL: DateTime stamps ใน TableB ขนาบแต่ละ DateTime stamp ใน TableA
คำแรก คุณสามารถละเว้นส่วนด้านล่าง (และรวมถึง) อย่างปลอดภัยเข้าร่วม: เริ่มต้นปิดถ้าคุณเพียงแค่ต้องการที่จะถอดรหัสรหัส พื้นหลังและผลเพียงทำหน้าที่เป็นบริบท โปรดดูประวัติการแก้ไขก่อน 2015-10-06 หากคุณต้องการดูว่ารหัสดูเหมือนเป็นครั้งแรก วัตถุประสงค์ ในท้ายที่สุดผมต้องการที่จะคำนวณพิกัด GPS หยันสำหรับเครื่องส่งสัญญาณ ( XหรือXmit) ตามแสตมป์วันที่และเวลาของข้อมูลจีพีเอสที่มีอยู่ในตารางที่ด้านข้างโดยตรงสังเกตในตารางSecondTableFirstTable เป้าหมายทันทีของฉันในการบรรลุเป้าหมายสูงสุดคือการหาวิธีเข้าร่วมFirstTableให้ดีที่สุดSecondTableเพื่อรับคะแนนเวลาขนาบข้างนั้น ต่อมาฉันสามารถใช้ข้อมูลนั้นได้ฉันสามารถคำนวณพิกัด GPS ระดับกลางโดยสมมติว่าการปรับตำแหน่งเชิงเส้นตามระบบพิกัดแบบคู่ขนาน (คำที่น่าประหลาดใจที่จะบอกว่าฉันไม่สนใจว่าโลกเป็นทรงกลมในระดับนี้) คำถาม มีวิธีที่มีประสิทธิภาพมากกว่าในการสร้างการประทับเวลาก่อนและหลังที่ใกล้เคียงที่สุดหรือไม่ แก้ไขด้วยตัวเองโดยเพียงแค่คว้า "หลัง" แล้วรับ "ก่อน" เฉพาะเมื่อมันเกี่ยวข้องกับ "หลัง" มีวิธีที่ง่ายกว่าที่ไม่เกี่ยวข้องกับ(A<>B OR A=B)โครงสร้างหรือไม่ Byrdzeyeให้ทางเลือกพื้นฐาน แต่ประสบการณ์ "โลกแห่งความจริง" ของฉันไม่ตรงกับกลยุทธ์การเข้าร่วมทั้ง 4 ของเขาที่ทำแบบเดียวกัน แต่ให้เครดิตเต็มที่กับเขาสำหรับการระบุสไตล์การเข้าร่วมอื่น ความคิดเทคนิคและคำแนะนำอื่น ๆ ที่คุณมี ดังนั้นไกลทั้งbyrdzeyeและPhrancisค่อนข้างมีประโยชน์ในเรื่องนี้ ฉันพบว่าคำแนะนำของ Phrancisถูกจัดวางอย่างยอดเยี่ยมและให้ความช่วยเหลือในช่วงวิกฤติดังนั้นฉันจะให้เขาได้เปรียบที่นี่ ฉันยังคงขอขอบคุณความช่วยเหลือเพิ่มเติมใด ๆ ที่ฉันสามารถรับได้ในเรื่องข้อ 3 Bulletpoints …

2
เป็นไปได้ไหมที่จะดูค่า LRU-K ใน SQL Server
ใน SQL Server sys.dm_os_memory_cache_entriesเป็นไปได้ที่จะดูทั้งต้นทุนดั้งเดิมของรายการในแคชรวมถึงต้นทุนปัจจุบันของรายการแคช ( original_costและcurrent_costตามลำดับ) DMV sys.dm_os_buffer_descriptorsมีการบันทึกหน้าเว็บที่อยู่ในหน่วยความจำในปัจจุบันเช่นเดียวกับข้อมูลเมตาบางส่วนเกี่ยวกับหน้า ข้อมูลอันน่าสนใจอย่างหนึ่งที่ไม่มีใน DVM คือค่า LRU-K สำหรับหน้าข้อมูล เป็นไปได้หรือไม่ที่จะรับค่า LRU-K สำหรับหน้าข้อมูลในบัฟเฟอร์พูลใน SQL Server ถ้าเป็นเช่นนั้นได้อย่างไร
21 sql-server 

6
ใน SQL Server มีวิธีการตรวจสอบว่ากลุ่มแถวที่เลือกถูกล็อคหรือไม่?
เราพยายามที่จะปรับปรุง / ลบบันทึกจำนวนมากในตารางแถวหลายพันล้าน เนื่องจากนี่เป็นตารางยอดนิยมจึงมีกิจกรรมมากมายในส่วนต่างๆของตารางนี้ กิจกรรมการอัปเดต / ลบขนาดใหญ่ใด ๆ จะถูกปิดกั้นเป็นระยะเวลานาน (เนื่องจากกำลังรอการล็อคในแถวหรือการล็อกหน้าหรือการล็อคตาราง) ทำให้หมดเวลาหรือใช้เวลาหลายวันเพื่อทำงานให้เสร็จ ดังนั้นเรากำลังเปลี่ยนวิธีการลบแถวเล็ก ๆ ในเวลาเดียวกัน แต่เราต้องการตรวจสอบว่าแถวที่เลือก (สมมติว่า 100 หรือ 1,000 หรือ 2,000 แถว) ปัจจุบันถูกล็อคโดยกระบวนการที่แตกต่างกันหรือไม่ ถ้าไม่เช่นนั้นดำเนินการลบ / อัปเดต หากพวกเขาถูกล็อคให้ย้ายไปยังกลุ่มระเบียนถัดไป ในตอนท้ายกลับมาที่จุดเริ่มต้นและพยายามอัปเดต / ลบสิ่งที่เหลือไว้ เป็นไปได้หรือไม่ ขอบคุณ ToC

2
มาตรการและขนาดในลูกบาศก์คืออะไร
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 6 ปีที่แล้ว ฉันยังใหม่กับ Microsoft Sql Server Business Intelligence และAnalysis Service(แต่ฉันเขียนโปรแกรมเป็นเวลาหลายปีกับ SQL Server) ใครสามารถอธิบายมาตรการและมิติในคิวบ์ได้ในคำง่ายๆ (ถ้าเป็นไปได้กับรูปภาพ)? ขอบคุณ

8
ศาสตราจารย์บอกให้เราจัดเก็บวัตถุ Java ต่อเนื่องเป็น blobs แทนที่จะกำหนดตารางเชิงสัมพันธ์
แทนที่จะกำหนดตารางด้วยคุณสมบัติที่ถูกต้องจริง ๆ แล้วอาจารย์ของฉันบอกเราว่าเราสามารถแมปวัตถุกับรหัสเช่นนี้: id (int) | Serialized Object (blob) 1 10010110110 ฉันเห็นปัญหามากมายกับสิ่งนี้ การสำรองข้อมูลซ้ำซ้อนต้องติดตามรหัสแยกต่างหากโดยต้องดึงทั้งตารางในหน่วยความจำเพื่อค้นหาสิ่งใดและ ** หากฉันต้องการเปลี่ยนแบบจำลองของฉันในรหัส Java ฉันจะไม่สามารถลบข้อมูลหยดที่เก็บไว้ใน ฐานข้อมูลลงในโมเดลนั้น ไม่ว่าฉันจะติดอยู่กับโมเดลนั้นตลอดไปหรือฉันต้องทำสิ่งที่น่าเกลียดอื่น ๆ เพื่อเปลี่ยนโมเดลของฉัน ** สิ่งทั้งหมดนี้ดูเหมือนจะไม่ดีสำหรับฉัน ฉันเป็นธรรมในการไม่เห็นด้วยกับอาจารย์ของฉัน? มีประโยชน์ในการทำสิ่งนี้ที่ฉันไม่ได้คิด? ถ้าฉันถูกต้องฉันควรพูดอะไรบางอย่างกับอาจารย์ของฉันเกี่ยวกับเรื่องนี้? เขาเทศนาเรื่องนี้กับคนทั้งชั้นของฉันและยังบอกด้วยว่าเขาได้สร้างโครงการแบบนั้น ความคิดเห็นที่สองจะดีมาก หลักสูตรการตั้งชื่อการออกแบบซอฟแวร์ อาจารย์ของฉันไม่ได้บอกว่านี่เป็นวิธีที่ดีที่สุด แต่เขาบอกว่ามันเป็นทางเลือกที่ถูกกฎหมายในการกำหนดตารางเชิงสัมพันธ์ ตัวแบบไม่ได้มีการเคลื่อนไหว แต่อย่างใด

2
พูลการเชื่อมต่อถูกรีเซ็ตด้วยข้อผิดพลาด: 18056, ความรุนแรง: 20, สถานะ: 46. และตัวนับ Perfmon ไม่แสดง
เราใช้การรับรองความถูกต้องของ SQL (เพื่อลดจำนวนพูลการเชื่อมต่อ) & สตริงการเชื่อมต่อ. NET 4.0 เพื่อเชื่อมต่อกับ SQL Server Enterprise Edition 2012 SP1 บนเซิร์ฟเวอร์ Windows 2008 R2 Enterprise: Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64) 19 ตุลาคม 2555 13:38:57 ลิขสิทธิ์ (c) Microsoft Corporation รุ่นองค์กร (64 บิต) บน Windows NT 6.1 (รุ่น 7601: Service Pack 1) เราใช้เซิร์ฟเวอร์ประมาณ 50 เซิร์ฟเวอร์แบ่งออกเป็น …

1
ค้นหาแบบสอบถามทั้งหมดที่ดำเนินการเมื่อเร็ว ๆ นี้ในฐานข้อมูล
[ฉันเป็นโปรแกรมเมอร์ T-SQL ระดับเริ่มต้น] [.. และหวังว่าฉันจะอยู่ในไซต์แลกเปลี่ยนสแต็คที่เหมาะสม] ฉันต้องการรับรายการคำถามทั้งหมดที่ฉันดำเนินการ (อย่างน้อยที่สุดคำถามที่ฉันดำเนินการตั้งแต่เช้า) ฉันต้องการรายงานเกี่ยวกับเวลาดำเนินการของแบบสอบถาม การค้นหาออนไลน์ไม่ได้ให้ข้อมูลที่มีประโยชน์กับฉันมากนัก ข้อความค้นหาเดียวที่ฉันพบทางออนไลน์ซึ่งดูเหมือนว่าใกล้เคียงกันมาก SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query] FROM sys.dm_exec_query_stats AS deqs CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest ORDER BY deqs.last_execution_time DESC ข้อความค้นหานี้ส่งกลับผลลัพธ์แปลก ๆ (ส่วนใหญ่เป็นกลุ่มของ sprocs) ยิ่งกว่านั้นผลลัพธ์ทั้งหมดเหล่านี้แสดงข้อความค้นหาที่ดำเนินการตั้งแต่บ่ายวันนี้ (ฉันต้องการข้อความค้นหาตั้งแต่เช้า) ฉันไม่พบสิ่งใดในคำถามก่อนหน้า (หากคำถามที่คล้ายกันได้ถูกถามไปแล้วโปรดชี้ให้ฉันเห็น) ฉันเห็นคำแนะนำบางอย่างเกี่ยวกับ SQL Profiler แต่ฉันเดาว่า Profiler จะช่วยฉันเฉพาะเมื่อฉันเริ่มต้นการติดตามแล้ว (แก้ไขฉันถ้าฉันผิด) ใครช่วยแนะนำฉันว่าฉันควรจะได้รับรายการของแบบสอบถามทั้งหมดที่มีการดำเนินการในฐานข้อมูลตั้งแต่เช้า (รวมถึงเวลาดำเนินการแบบสอบถาม) .. [มันจะมีประโยชน์ (ไม่ใช่ข้อกำหนด) …

3
ใช้ pg_dump บนเซิร์ฟเวอร์ hot แตนหรือยัง?
คำเตือน: ฉันยอมรับว่ายังไม่ได้ลองสิ่งนี้ แต่ฉันไม่แน่ใจว่าฉันจะรู้ว่ามันทำงานไม่ถูกต้องหรือไม่ดังนั้นฉันต้องการถาม ฉันต้องการเรียกใช้งานการสำรองข้อมูลรายคืน (ผ่านpg_dumpall) จากเซิร์ฟเวอร์ hot standby ที่ใช้การจำลองแบบสตรีมมิ่งเพื่อหลีกเลี่ยงการวางภาระนั้นไว้บนหลัก ฉันได้เห็นเพียงการกล่าวถึงผู้คนที่ได้รับ gotchas เช่นที่นี่และที่นี่แต่มีคำแนะนำน้อยมาก ไม่เป็นไรหากการสำรองข้อมูลล่าช้าไปทางด้านหลังหลักเล็กน้อยตราบใดที่มันสอดคล้องกัน (ซึ่งควรจะเป็น) คำถามของฉันคือ: ฉันต้องการทำสิ่งนี้จริงๆหรือควรทำการสำรองข้อมูลบนเซิร์ฟเวอร์หลัก ทำไม? เมื่อทำการดัมพ์ในโหมดแสตนด์บายฉันต้องใช้การตั้งค่าใดและขั้นตอนใดที่ฉันควรทำอย่างถูกต้อง? เช่นฉันจะต้องหยุดการจำลองแบบในช่วงระยะเวลาของการสำรองข้อมูลหรือไม่

3
ลำดับชั้นต้นไม้พ่อแม่และลูก
ฉันต้องติดตามข้อมูลใน SQL Server 2008 R2 SQLFiddle schema: สร้างตาราง [dbo] [ICFilters] ( [ICFilterID] [int] ตัวตน (1,1) ไม่เป็นโมฆะ [ParentID] [int] ไม่เสียค่าเริ่มต้น 0 [FilterDesc] [varchar] (50) ไม่เป็นโมฆะ [ใช้งาน] [tinyint] ไม่เป็นค่าเริ่มต้น 1 CONSTRAINT [PK_ICFilters] คีย์หลักที่คลัสเตอร์ ([ICFilterID] ASC) พร้อม PAD_INDEX = ปิด STATISTICS_NORECOMPUTE = OFF IGNORE_DUP_KEY = ปิด ALLOW_ROW_LOCKS = เปิด ALLOW_PAGE_LOCKS = เปิด ) …

2
ใช้ SELECT ในส่วนคำสั่ง WHERE ของ SELECT อื่น
ผมได้ทำแอพลิเคชันระยะไกลร่างด้านบนของ libpq สำหรับPostrgreSQL มันทำงานได้ดี แต่ฉันได้ทำโปรไฟล์การทำงานทั่วไปของแอปพลิเคชัน สำหรับผลลัพธ์ทางธุรกิจแต่ละครั้งสุดท้ายที่ฉันผลิตมันเกิดขึ้นที่ฉันเรียกบางอย่างเช่น 40 ข้อเลือก (มากกว่า tcpip) ฉันมีการเตือนความจำจาก SQL-Server เตือนให้ฉันลดจำนวนการโต้ตอบระหว่างแอปพลิเคชันระยะไกลและฐานข้อมูล จากการวิเคราะห์การเลือกของฉันฉันคิดว่าฉันสามารถลดจำนวนนี้เป็น 3 SELECTข้อโดยใช้การรวม แต่ผมจำไม่ได้ว่าไวยากรณ์สำหรับการใช้ผลของอีกSELECTSELECT เช่น: SELECT * FROM individual INNER JOIN publisher ON individual.individual_id = publisher.individual_id WHERE individual.individual_id = 'here I would like to use the results of a another select' สิ่งนี้SELECTจะเป็นสิ่งที่เรียบง่าย: SELECT identifier FROM another_table WHERE …

3
ฉันสามารถใช้ SQL Server Management Studio 2012 บนเซิร์ฟเวอร์ 2008 ได้หรือไม่
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 7 ปีที่ผ่านมา โรงเรียนของฉันใช้ SQL Server 2008 ครั้งล่าสุดที่ฉันใช้ฉันเพิ่งติดตั้ง (ที่บ้าน) ส่วน SQL Server Management Studio 2008 และใช้ VPN เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ของโรงเรียน ตอนนี้ฉันต้องการติดตั้ง SQL Server Management Studio อีกครั้ง แต่คราวนี้รุ่น 2012 พร้อมใช้งานแล้ว SQL Server Management Studio 2012 จะทำงานกับ SQL Server 2008 ของโรงเรียนหรือไม่ หรือฉันต้องการเวอร์ชั่น 2008?
21 sql-server  ssms 

3
Pivot แถวในหลายคอลัมน์
ฉันมีอินสแตนซ์ SQL Server ที่มีเซิร์ฟเวอร์ที่เชื่อมโยงกับเซิร์ฟเวอร์ Oracle มีตารางบนเซิร์ฟเวอร์ Oracle ที่เรียกว่าPersonOptionsซึ่งมีข้อมูลต่อไปนี้: ╔══════════╦══════════╗ ║ PersonID ║ OptionID ║ ╠══════════╬══════════╣ ║ 1 ║ A ║ ║ 1 ║ B ║ ║ 2 ║ C ║ ║ 3 ║ B ║ ║ 4 ║ A ║ ║ 4 ║ C ║ ╚══════════╩══════════╝ ฉันต้องหมุนข้อมูลนั้นเพื่อผลลัพธ์คือ: ╔══════════╦═════════╦══════════╦══════════╗ ║ PersonID …

1
SQL Server - ใครก็ตามที่ใช้ SUMA, ค่าสถานะการสืบค้นกลับ 8048 หรือค่าสถานะการติดตาม 8015
เมื่อเร็ว ๆ นี้รวมถึงการเริ่มต้นของ SQL Server ติดตามการตั้งค่าสถานะ 8048 เพื่อแก้ไขปัญหา contention spinlock ที่ร้ายแรงในระบบ SQL Server 2008 R2 สนใจที่จะได้ยินจากผู้อื่นที่พบกรณีการใช้งานที่ค่าประสิทธิภาพถูกส่งโดยการติดตามค่าสถานะ 8048 (เลื่อนระดับกลยุทธ์การจัดสรรหน่วยความจำแบบสอบถามจากโหนดต่อ NUMA ไปยังแกนหลัก), สถานะการติดตาม 8015 (SQL Server ละเว้นฟิสิคัล NUMA) หรือ SUMA ( มีการเข้าถึงหน่วยความจำที่สม่ำเสมอเพียงพอตัวเลือก BIOS ในเครื่อง NUMA บางเครื่อง) ติดตามสถานะ 8048 http://blogs.msdn.com/b/psssql/archive/2011/09/01/sql-server-2008-2008-r2-on-newer-machines-with-more-than-8-cpus -presented ต่อ Numa โหนด พ.ค. จำเป็นร่องรอยธง 8048.aspx ติดตามสถานะ 8015 http://blogs.msdn.com/b/psssql/archive/2010/04/02/how-it-works-soft-numa-io-completion-thread-lazy-writer-workers-and-memory -nodes.aspx รายละเอียดเกี่ยวกับปริมาณงานของระบบรวบรวมตัวชี้วัดจากระบบที่มีปัญหาและรวบรวมตัวชี้วัดจากระบบหลังจากการแทรกแซงตาม การตั้งค่าสถานะการสืบค้นกลับ …

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