คำถามติดแท็ก sql-server

Microsoft SQL Server ทุกรุ่น (ไม่ใช่ MySQL) โปรดเพิ่มแท็กเฉพาะเวอร์ชันเช่น sql-server-2016 เนื่องจากมักเกี่ยวข้องกับคำถาม

2
วิธีสร้างการแจ้งเตือนเหตุการณ์ที่เรียกใช้งาน / ขั้นตอนเมื่อทำมิเรอร์การเปลี่ยนแปลงสถานะ
ฉันถามคำถามตามลำดับของอันนี้ฉันสามารถส่งสตริงผ่าน TCP โดยใช้ T-SQL ได้ไหม? Remus Rusanu แสดงให้เห็นว่ามันเป็นทางออกที่ดีที่สุดสำหรับปัญหาของฉัน แต่ ... ฉันยังเด็กเกินไปที่จะเข้าใจและทำทุกสิ่งที่เขาพูด จนถึงตอนนี้ฉันคิดว่าสิ่งที่ฉันต้องสร้างเหตุการณ์การแจ้งเตือนสำหรับ DATABASE_MIRRORING_STATE_CHANGE ฉันถูกต้องหรือไม่ ฉันจะสร้างการแจ้งเตือนเหตุการณ์นี้ได้อย่างไรเมื่อมีการทริกเกอร์แทรกบรรทัดในตารางที่จัดเก็บการประทับเวลาและ ID ที่มาจากการแจ้งเตือน จนถึงตอนนี้ฉันกำลังตั้งค่าการแจ้งเตือนหนึ่งรายการต่อ ID แต่ละคนกำลังทำงานเช่นนี้ (ตัวอย่างนี้สำหรับ ID = 1): DECLARE @state AS varchar(50); SELECT @state = mirroring_state_desc FROM SYS.database_mirroring WHERE mirroring_guid IS NOT NULL; IF (@state IS null) SET @state = ' '; INSERT INTO …

1
การโอนย้ายจากฐานข้อมูลฟิสิคัลไปยังฐานข้อมูลคลาวด์
อะไรคือความหมายของการย้ายฐานข้อมูลทางกายภาพในการสร้างของ Microsoft SQL Server 2008R2 ที่ทำให้การใช้คุณสมบัติขั้นสูงเช่นการค้นหาข้อความเต็มใน varchar (MAX) FILESTREAM Blobs เพื่อSQL Azure ? ต้องการการเปลี่ยนแปลงทางสถาปัตยกรรมใดบ้าง มีขั้นตอนอะไรบ้างในการเปลี่ยนแปลงนี้? SQL Azure Migration Wizzard ไม่สามารถเป็นเครื่องมือวิเศษที่ทำให้เกิดการเปลี่ยนแปลงโดยอัตโนมัติ ปัญหาความเข้ากันได้ที่เครื่องมือการโยกย้ายไม่สามารถแก้ไขได้และควรทำงานด้วยตนเอง "ด้วยตนเอง" คืออะไร

4
ช่วยฉันเลือกชุดค่าระดับ RAID สำหรับอินสแตนซ์ของ SQL Server 2008
ฉันจะสร้างเซิร์ฟเวอร์ IBM 3400 ขึ้นใหม่ตั้งแต่ต้น เซิร์ฟเวอร์นี้ทุ่มเทให้กับอินสแตนซ์ SQL Server 2008 ที่ทำงานบน Windows 2008 R2 ฉันจะสร้างการกำหนดค่า RAID ใหม่ ฉันมีไดรฟ์ SCSI 73 GB 6 ตัวในเครื่องและตัวควบคุม IBM ServerRAID 8K อะไรจะเป็นวิธีที่ดีในการตั้งค่าระดับ RAID? ฉันควรจะมีสองสามหรือหนึ่งเขตข้อมูลใน controler ของฉัน? ฉันกำลังพิจารณาที่จะทำหนึ่งในวิธีแก้ปัญหาต่อไปนี้: ใช้ดิสก์ทั้งหมดและสร้างพูล RAID 10 ใช้ดิสก์ 4 ดิสก์สำหรับพูล RAID 1e และใช้เพื่อเก็บข้อมูลฐานข้อมูลและระบบปฏิบัติการและใช้ดิสก์ 2 ดิสก์อื่นในพูล RAID 0 และใช้เพื่อเก็บบันทึกฐานข้อมูล รวมกันบ้าง หน่วยแถบขนาดใหญ่กว่าดีกว่าหรือไม่ เซิร์ฟเวอร์นี้จะเป็นสมาชิกของฐานข้อมูลที่จำลองแบบแล้ว ภารกิจหลักของมันคือการรายงานและดึงข้อมูลโดยมีเอเจนต์การจำลองแบบเท่านั้นที่ทำการเขียน ขนาดของฐานข้อมูลอยู่ที่ประมาณ 90 …

3
บันทึกการเชื่อมต่อใน SSMS หรือไม่
ฉันสามารถบันทึกเซสชันหรือโปรไฟล์บางประเภทใน SSMS (2008 r2) ที่จะเปิดการเชื่อมต่อไปยังรายการเซิร์ฟเวอร์ฐานข้อมูลที่บันทึกไว้เมื่อฉันเปิด SSMS ได้หรือไม่ ตัวอย่างเช่นฉันมักจะเปิด SSMS แล้วเชื่อมต่อกับเซิร์ฟเวอร์ SQL NY-DB01, NY-DB02 ฯลฯ ... ฉันสามารถมีทางลัดบางอย่างเพื่อเปิดสิ่งเหล่านี้ทั้งหมดในครั้งเดียวได้หรือไม่?

2
เพื่อเพิ่มประสิทธิภาพฐานข้อมูลให้มากที่สุดคำสั่งใดที่ควรรันหลังจากโหลดข้อมูลจำนวนมากลงใน SQL Server 2008 ผ่าน SSIS
ฉันได้เขียนแพ็คเกจ SSIS เพื่อโหลดข้อมูลทดสอบลงในฐานข้อมูลเปล่า ตารางบางตารางมีขนาดใหญ่มาก (ประมาณ 700 ล้านแถว) เมื่อแพคเกจ SSIS เสร็จสิ้นแล้วมีคำสั่งใดบ้างที่ฉันควรเรียกใช้ (ในฐานะผู้ฝึกงาน DBA!) เพื่อเพิ่มประสิทธิภาพของฐานข้อมูล? ตัวอย่างเช่นฉันดำเนินการEXEC sp_updatestatsแต่รายงานว่าไม่จำเป็นต้องมีการอัพเดตดัชนี มีรายการของสิ่งที่ต้องทำเมื่อโหลดข้อมูลจำนวนมากหรือ SQL Server 2008 จัดการสิ่งเหล่านั้นให้คุณหรือไม่?

3
คอลัมน์ที่รวมกับดัชนีที่กรอง
ขณะนี้เราทำงานกับตารางชื่อtb_tranfers ตารางนี้มี 40 ล้านแถวและมีขนาด ~ 26 GB (ข้อมูล 11 GB, ดัชนี 15 GB) 10 ถึง 15% ของแถวเป็นแถวที่ถูกลบแบบอ่อน ( DeletedDateไม่ใช่ค่าว่าง) แอปพลิเคชันใช้เฉพาะแถวที่DeletedDateเป็นโมฆะ แบบสอบถามทั้งหมดในตารางนี้จะมีส่วนคำสั่งที่มีผล มี 15 ดัชนีในตารางนี้ ดัชนี DMV ที่ขาดหายไปมีคำแนะนำในการสร้างดัชนีด้วยDeletedDateเป็นคอลัมน์ที่รวมอยู่ จะเป็นประโยชน์หรือไม่ที่จะใช้ดัชนีที่กรองแล้วในดัชนีWHERE DeleteDdate IS NULLที่ไม่ได้กล่าวถึงทั้ง 11 ดัชนี หรือมันจะดีกว่าที่จะมีคอลัมน์DeletedDateเป็นคอลัมน์ที่รวมหรือไม่

3
รูปแบบการกู้คืน SQL Server 2008 / R2
ฐานข้อมูลทั้งหมดของเราบนเซิร์ฟเวอร์บางตัวไม่จำเป็นต้องใช้แบบจำลองการกู้คืนข้อมูลเต็มรูปแบบ (เราไม่ทำการสำรองข้อมูลบันทึกธุรกรรม) และค่าเริ่มต้นควรจะสร้างฐานข้อมูลและระบุรูปแบบการกู้คืนแบบง่ายเสมอ ค่อนข้างบ่อยและด้วยเหตุผลบางประการฐานข้อมูลจำนวนมากถูกสร้างขึ้นโดยใช้ SSMS อย่างไรก็ตามข้อผิดพลาดสามารถทำได้และผู้ปฏิบัติงานสามารถลืมระบุรูปแบบการกู้คืนอย่างง่าย สิ่งนี้นำไปสู่ ​​"แปลกใจ" ในอีกสองสามวันต่อมาเมื่อกล่องกำลังต่อสู้กับพื้นที่ดิสก์เนื่องจากไฟล์บันทึก 60GB สามหรือสี่ไฟล์ที่ไม่เคยถูกตัดทอน ฉันสามารถสร้างรูปแบบการกู้คืนอย่างง่ายเป็นค่าเริ่มต้นสำหรับฐานข้อมูลใหม่โดยการกำหนดค่ารูปแบบการกู้คืนในmodelฐานข้อมูล อย่างไรก็ตามแนะนำนี้ถ้าฉันทำสิ่งนี้มันจะกลับมาและกัดฉันในทางใดทางหนึ่งในอนาคต?

2
การใช้ schema แยกกันส่งผลต่อประสิทธิภาพของ SQL Server 2008 อย่างไร
ฉันต้องการใช้ schema ที่แยกต่างหากสำหรับวัตถุที่มีวัตถุประสงค์ที่แตกต่างกันในฐานข้อมูล SQL Server 2008 ของเรา ตอนนี้เราใช้หลักการตั้งชื่อที่ทำให้มึนงงอย่างเป็นธรรมเพื่อระบุจุดประสงค์ของตารางหรือขั้นตอนการจัดเก็บและคำนำหน้าหมายความว่าเราต้องสแกนอักขระห้าหรือหกตัวก่อนที่เราจะเห็นจุดเริ่มต้นของชื่อที่ไม่ซ้ำกัน ฉันต้องการใช้สคีมาแยกต่างหากสำหรับตารางที่เพิ่งใช้เพื่อผลักดัน UI (เมนูบทบาทโดยบุคคล ฯลฯ ) และสำหรับผู้ที่เป็นตารางมิติเทียบกับตารางข้อเท็จจริง ฯลฯ คำถามของฉันคือจะมีผลกระทบต่อประสิทธิภาพจากการใช้หลาย schema (schemae?) ตรงข้ามกับ dbo เก่าที่ดีสำหรับทุกสิ่งหรือไม่

2
@table_variable หรือ #temp_table
ฉันมีตัวแปรประเภทตารางที่กำหนดโดยผู้ใช้ขนาดใหญ่ที่มี 129 คอลัมน์ ฉันจะเก็บระเบียนประมาณ 2,000-3,000 รายการในตัวแปรตารางนี้ในแต่ละครั้งและส่งต่อไปยังกระบวนงานและฟังก์ชันที่เก็บไว้ต่าง ๆ เพื่อรับข้อมูลเพิ่มเติมและทำการแก้ไข ข้อมูลเพิ่มเติมและการแก้ไขใหม่เหล่านี้จะถูกเก็บไว้ในตัวแปรตารางใหม่ชนิดเดียวกันและกลับสู่ขั้นตอนการจัดเก็บต้นฉบับผ่านOUTPUTพารามิเตอร์ (นี่เป็นเพราะพารามิเตอร์ประเภทตารางสามารถส่งผ่านเป็นREADONLYเท่านั้น) นี่คือรหัสหลอกของฉัน: SP1 @tmp tableType { INSERT @tmp EXEC SP2 (@tmp) INSERT @tmp EXEC SP3 (@tmp) } ฉันควรใช้@table_variableหรือ#temp_table?

4
เกินขนาดฟิลด์ในการออกแบบฐานข้อมูล
ฉันมีบางฟิลด์สำหรับตารางของฉันที่เป็นสตริงและในขณะนี้ขนาดของฟิลด์ส่วนใหญ่มีข้อ จำกัด ของอักขระที่ค่อนข้างสูง ตัวอย่างเช่น 100 อักขระสำหรับชื่อถนน มีโทษสำหรับการใช้สนามขนาดใหญ่หรือไม่? ถ้าฉันเปลี่ยนขีด จำกัด เป็น 30 อักขระสำหรับฟิลด์นี้เช่นจะมีการเพิ่มประสิทธิภาพหรือประสิทธิภาพด้วยขนาดหรือไม่ จะมีประมาณ 50 สาขาที่อาจเป็นผู้สมัครเพื่อการหดตัว ขอบคุณสำหรับคำแนะนำของคุณ
11 sql-server 

4
มีเครื่องมือในการทำการเปรียบเทียบข้อมูลระหว่างสอง schema ที่แตกต่างกันหรือไม่?
เรากำลังย้ายฐานข้อมูลของเราไปยังสคีมาใหม่ แต่ต้องการตรวจสอบความถูกต้องของข้อมูลว่าถูกย้ายอย่างถูกต้องแล้ว เครื่องมือเปรียบเทียบข้อมูลแบบดั้งเดิมสามารถเปรียบเทียบสองฐานข้อมูลสำหรับความแตกต่างหากสกีมาเหมือนกัน ในกรณีของเรามีการเปลี่ยนแปลงการออกแบบตาราง แต่ข้อมูลทั้งหมดจาก schema เก่าอยู่ในใหม่มันเพิ่งถูกย้ายไปรอบ ๆ และฉันต้องแน่ใจว่าถูกต้อง เรามีหลายสิบล้านแถวเพื่อให้การตรวจสอบด้วยตนเองไม่ใช่ตัวเลือก มีเครื่องมือใดบ้างที่สามารถช่วยในการเปรียบเทียบประเภทนี้? ถ้าไม่มีไลบรารี่ / กรอบงานใดบ้างที่สามารถช่วยเริ่มต้นพัฒนาโซลูชันที่กำหนดเองได้? ฉันยินดีที่จะใช้โซลูชันเฉพาะฐานข้อมูลหากจำเป็นในกรณีนี้สำหรับ SQL Server 2008 โซลูตรอนของฉัน:ฉันกำลังเปรียบเทียบชุดข้อมูลสองชุดโดยการสร้างหนึ่งVIEWของแต่ละตารางบนฐานข้อมูลเก่าที่มีเขตข้อมูลเดียวกับตารางฐานข้อมูลใหม่ ฉันเปรียบเทียบข้อมูลโดยใช้เทคนิคที่อธิบายไว้ที่นี่: วิธีที่สั้นที่สุดเร็วที่สุดและง่ายที่สุดในการเปรียบเทียบสองตารางใน SQL Server: UNION! ฉันโชคดีในการโยกย้ายครั้งนี้เนื่องจากโครงสร้างของตารางโดยรวมคล้ายกับฐานข้อมูลเก่าโดยมีการย้ายเขตข้อมูลจากตารางหนึ่งไปยังอีกตารางหนึ่งลดลงหรือเพิ่ม ในกรณีของการตกและเพิ่มไม่มีอะไรที่จะเปรียบเทียบสำหรับเขตข้อมูลที่ย้ายหรือถูกรวมฉันจะคำนวณในมุมมองเพื่อให้ข้อมูลที่ถูกต้องสำหรับการเปรียบเทียบ การUNIONเปรียบเทียบแสดงให้ฉันเห็นเฉพาะแถวที่มีความแตกต่างดังนั้นทันทีที่ข้อมูลถูกต้องฉันจะได้รับชุดผลลัพธ์ที่ว่างเปล่า

5
วิธีการตรวจสอบการหยุดชะงัก
คุณเริ่มแก้ไขปัญหาการหยุดชะงักของ SQL Server 2005/2008 เมื่อใดและอย่างไร การแจ้งเตือนถูกเปิดใช้งาน SSMS ผ่านการแจ้งเตือนสภาพประสิทธิภาพของ SQL Server, วัตถุ -> SQLServer: ล็อค, Counter-> ล็อค Waits / Sec, อินสแตนซ์: _Total, การแจ้งเตือนหากตัวนับ: เพิ่มขึ้นสูงกว่าค่า 3 นี่เป็นวิธีเชิงรุก ค่าที่ยอมรับได้คืออะไร? ฉันขอขอบคุณที่คุณช่วย ขอขอบคุณ!!!

2
A Non-DBA ถาม: วิธีการคัดลอก / ย้ายอินสแตนซ์ SQL Server ไปยังเซิร์ฟเวอร์อื่นผ่านทาง Backup / Restore อย่างไม่ลำบาก
เราเพิ่งมีเซิร์ฟเวอร์ใหม่ดังนั้นฉันต้องการคัดลอกอินสแตนซ์ SQL Server 2008 ที่มีอยู่ไปจากกล่องฐานข้อมูลเก่า ปกติแล้วฉันจะทำสิ่งนี้โดยการคัดลอก. mdf และล็อกไฟล์และแนบไฟล์เหล่านั้น แต่ฉันไม่สามารถใช้ dbs off line ได้เนื่องจากพวกเขาใช้งานตลอด 24 ชั่วโมงทุกวันดังนั้นฉันจึงสำรองฐานข้อมูลและเรียกคืนไฟล์ใหม่ เครื่อง อย่างไรก็ตามผมได้จบลงด้วยสองสามประเด็นหนึ่งของพวกเขาที่เกี่ยวข้องกับผู้ใช้กำพร้า ดังนั้นสิ่งที่ฉันกำลังมองหาคือกระบวนการที่ไม่ปลอดภัยในการเคลื่อนย้ายทุกอย่างไปด้วยความยุ่งยาก / รำคาญ / ปวดหัวน้อยที่สุด ฉันเป็น. dev ที่มีจำนวน SQL อยู่พอสมควร แต่การทำงานภายในของ SQL Server ส่วนใหญ่เป็นเรื่องลึกลับสำหรับฉันและฉันพบว่าเอกสาร MS เจ็บปวดต่อการอวนลาก กรุณาช่วย.

1
SQL Server 2008 R2 Dirty อ่านแล้ว - ไม่ใช่อะตอมอย่างไร?
ฉันสงสัยว่า "การอ่านที่สกปรก" สกปรกแค่ไหนนั้นสามารถอยู่ภายใต้ระดับการแยกแบบไม่ต้องอ่านได้ ฉันเข้าใจว่าแถวที่ได้รับการปรับปรุงแล้วแต่ยังไม่ได้มีการยืนยันจะปรากฏให้เห็น แต่: แถวสามารถปรากฏเป็นอัปเดตบางส่วนได้หรือไม่นั่นคือบางคอลัมน์มีการอัปเดตและบางคอลัมน์ไม่ได้ คอลัมน์เดียวสามารถปรากฏการปรับปรุงบางส่วน ตัวอย่างเช่นถ้าคุณมีคอลัมน์ varchar (4000) ที่อยู่ในกระบวนการของการปรับปรุงอย่างสมบูรณ์และสมมติว่ามันมี 4,000 ตัวอักษร คุณสามารถอ่านพูดว่า 2k chars จากสถานะก่อนหน้าและ 2k chars จากสถานะใหม่ได้หรือไม่? แล้ว varchar (สูงสุด) ที่มีความยาว> 8k อัปเดต: หลังจากมีการโต้วาทีความเห็นร่วมขั้นต่ำคือถ้าขนาดคอลัมน์> 8KB ผู้อ่านสกปรกแม้อยู่ในคอลัมน์ก็เป็นไปได้

8
คอลัมน์ตัวตนหรือ UDF ที่สร้างรหัสเฉพาะอย่างชัดเจน?
ผมอยู่ในช่วงกลางของการอภิปรายเกี่ยวกับว่ามันจะดีกว่าที่จะทำให้PRIMARY KEYออกมาจากคอลัมน์ประจำตัวของเราออกจาก UDF ที่ชัดเจนสร้างรหัสที่ไม่ซ้ำกัน ฉันโต้เถียงกับคอลัมน์ข้อมูลประจำตัว คู่ของฉันกำลังโต้เถียงในการสร้างค่าด้วยตนเองเขาอ้างว่า โดยใส่ UDF ลงในตารางอื่นที่เราสามารถมี UDF ได้ ล็อคทรัพยากร เพิ่มตาราง ID ด้วยหนึ่งฟิลด์ที่เรียกID_Valueโดย1 ใช้สิ่งนี้เป็นตัวระบุที่ไม่ซ้ำกันระดับโลก หรือมีตารางทำid+1เมื่อแทรก ง่ายกว่าที่จะย้ายข้อมูลระหว่างเซิร์ฟเวอร์และ / หรือสภาพแวดล้อมที่ไม่มีข้อ จำกัด ในการระบุ ย้ายจากฐานข้อมูลหนึ่งที่มีข้อมูลไปยังฐานข้อมูลอื่นที่คล้ายกันพร้อมให้บอกว่าการจัดเตรียมหรือข้อมูลจำลอง สำหรับการทดสอบที่ไม่ใช่การผลิตเราอาจต้องการดึงระเบียนทั้งหมดจากเมื่อวานนี้ลงไปยังการจัดเตรียมสำหรับการทดสอบ การใช้งานแบบใดที่เหมาะสมกว่า

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