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

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

1
จะปรับปรุงอัตราส่วน Hit Cache ได้อย่างไร?
จากสิ่งที่ฉันสามารถบอกได้ถึงอัตราส่วนของ Hit Cache ที่ต่ำกว่า 95% เป็นปัญหา ในกล่องของฉันค่าโฮเวอร์จาก 85 ถึง 95% ฉันจะแก้ไขปัญหานี้ได้อย่างไร เซิร์ฟเวอร์ดูเหมือนจะมี RAM มากมายจึงไม่น่าจะมีปัญหา มีอะไรอีกบ้างที่เป็นไปได้?

1
ในกรณีที่มีการอัปเดตหลายระเบียนในรายการเดียวมีการจัดเก็บรุ่นกี่เวอร์ชัน
อ้างอิงจากบทความ MSDN โดย Kimberly L. Tripp การแยกธุรกรรมโดยใช้การควบคุมเวอร์ชันของSQL Server 2005 Rowของ Neal Graves "... ทุกรุ่นก่อนหน้าของเร็กคอร์ดที่เฉพาะเจาะจงจะถูกล่ามโซ่ไว้ในรายการที่เชื่อมโยงและในกรณีของการทำธุรกรรมที่อิงกับการทำเวอร์ชันแถวยาวรันลิงก์จะต้องถูกสำรวจในแต่ละการเข้าถึงเพื่อให้ได้เวอร์ชันที่สอดคล้องกันของธุรกรรม แถว" ซึ่งอยู่ในส่วน "การทำความเข้าใจกับการกำหนดเวอร์ชันของแถว" สำหรับการติดตามทั้ง "การกำหนดเวอร์ชันของแถวในการอ่านที่กระทำโดยใช้การกำหนดเวอร์ชันของแถว" และ "การกำหนดเวอร์ชันของแถวในการแยก Snapshot" เพิ่มเติมเกี่ยวกับตัวอย่างของการกำหนดเวอร์ชันของแถวเนื่องจากการปรับเปลี่ยนมีให้ในบริบทของการอัพเดตหลายรายการของเร็กคอร์ดเดียวกันโดยการทำธุรกรรมหลายรายการ (T1, T2, T3) ใน SNAPSHOT เท่านั้น ในกรณีที่มีเพียงหนึ่งธุรกรรมที่อัปเดตบันทึกหลายครั้ง (โดยหลายงบ) จะมีการจัดเก็บหลายรุ่น (เชื่อมโยง) หรือเฉพาะรายการที่ถ่ายในช่วงเวลาที่มีการ "จับภาพ" SNAPSHOT หรือไม่ คำตอบสำหรับคำถามนี้ควรตอบคำถามที่เกี่ยวข้องที่รอดำเนินการของฉันทันที: เหตุใดตัวแยกการกำหนดเวอร์ชันแถวใช้รายการรุ่นที่เชื่อมโยงของบันทึก RCSI ใช้พื้นที่น้อยกว่าหรือเหมือนกันมากกว่า SNAPSHOT หรือไม่ ทำไม?

3
ดัชนีหนึ่งหรือสอง
ฉันสร้างดัชนีต่อไปนี้บนตารางในฐานข้อมูลของฉัน: CREATE INDEX [idx_index1] on [table1] (col1, col2, col3) เซิร์ฟเวอร์กำลังแนะนำดัชนี 'ขาดหายไป' ต่อไปนี้: CREATE INDEX [idx_index2] on [table1] (col1, col2) INCLUDE (col3, col4, col5, col6....) ดูเหมือนว่าฉันมีเหตุผลที่จะแก้ไขคำจำกัดความดัชนีที่มีอยู่เพื่อรวมคอลัมน์ที่แนะนำแทนที่จะสร้างดัชนีใหม่ที่ต้องได้รับการบำรุงรักษา แบบสอบถามที่เลือกบน col1 และ col2 สามารถใช้ index1 ได้อย่างมีประสิทธิภาพเท่ากับ index2 ฉันถูกต้องหรือว่าฉันขาดอะไรไป

5
การเพิ่มตารางเซิร์ฟเวอร์ SQL ที่ไม่ได้ใช้พื้นที่
ฉันมีตารางใน SQL Server 2012 Express พร้อมพื้นที่ที่ไม่ได้ใช้จำนวนมาก ฉันต้องการพื้นที่ว่างในฐานข้อมูล | NAME | ROWS | สงวนลิขสิทธิ์ DATA | INDEX_SIZE | ไม่ใช้ | ------------- | -------- | -------------- | ----------- --- | ------------ | -------------- | | MyTableName | 158890 | 8928296 KB | 5760944 KB | 2248 KB | 3165104 KB | ฉันจะให้ …

3
ข้อผิดพลาด:“ ในการเรียกใช้แพคเกจ ssis นอกเครื่องมือข้อมูลเซิร์ฟเวอร์ sql คุณต้องติดตั้ง [ส่งอีเมลที่ประสบความสำเร็จ] ของ Integration Services หรือสูงกว่า”
โปรดทราบว่าชื่อของ qusetion นี้เป็นข้อความแสดงข้อผิดพลาดคำต่อคำเฉพาะสำหรับผู้ใช้รายนี้ ข้อความแสดงข้อผิดพลาดแสดงข้อผิดพลาดในแอปพลิเคชัน dtexec ซึ่งจะแทนที่ตัวแปรผู้ใช้ลงในสตริงข้อความข้อผิดพลาด ในกรณีนี้ข้อความมาตรฐานจะถูกแทนที่ด้วยStandard E ditionsend successful email ข้อความแสดงข้อผิดพลาด 'มาตรฐาน' จะเป็น: คำอธิบาย: เมื่อต้องการเรียกใช้แพคเกจ SSIS ภายนอก Business Intelligence Development Studio คุณต้องติดตั้ง Standard Edition ของ Integration Services หรือสูงกว่า รุ่น SSIS 2012 แพคเกจเดิมเป็นเวอร์ชั่น 2005 แพ็คเกจบนระบบไฟล์ DB Engine / Agent บนโฮสต์ 1, SSIS บนโฮสต์ 2 การดำเนินการจากโฮสต์ 2 รันสำเร็จ การดำเนินการจากโฮสต์ 1 ให้ข้อผิดพลาดในหัวข้อคำถาม …

3
การปรับปรุงประสิทธิภาพของ STIntersects
ตารางT_PINมี 300,000 พินและT_POLYGONมี 36,000 รูปหลายเหลี่ยม T_PINมีดัชนีนี้: CREATE SPATIAL INDEX [T_PIN_COORD] ON [dbo].[T_PIN] ( [Coord] )USING GEOGRAPHY_GRID WITH (GRIDS =(LEVEL_1 = HIGH,LEVEL_2 = HIGH,LEVEL_3 = HIGH,LEVEL_4 = HIGH), CELLS_PER_OBJECT = 128, PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = …

4
จะหาดัชนีที่ไม่ได้ใช้อย่างไร
ฉันกำลังทำงานกับคลังข้อมูล ฉันมีตารางที่มีระเบียนสูงถึง 200M ตารางเหล่านี้บางส่วนมีดัชนีประมาณ 20+ รายการ (ฉันไม่สามารถให้เหตุผลได้ว่าทำไมพวกเขาจึงถูกสร้างขึ้นตั้งแต่แรก) สิ่งนี้ทำให้งานในการรักษาดัชนีเหล่านี้เจ็บปวดเกินไปและมีผลกระทบโดยตรงต่องานนำเข้า DWH ทั้งในด้านประสิทธิภาพและเวลาทำงาน ฉันจะค้นหาดัชนีที่ใช้น้อยที่สุดในแต่ละตารางได้อย่างไร (เพื่อกำจัดพวกเขา)
11 sql-server  ssms 

5
วิธีเข้าถึงฐานข้อมูล SQL Server จากคอมพิวเตอร์เครื่องอื่นที่เชื่อมต่อกับเวิร์กกรุ๊ปเดียวกัน
ฉันได้สร้างแอปพลิเคชัน C # ซึ่งใช้ฐานข้อมูล SQL Server ฉันมีคอมพิวเตอร์เครื่องอื่นที่เชื่อมต่อกับฉันและกันในเวิร์กกรุ๊ป ฉันแบ่งปันแอปพลิเคชัน C # ของฉันกับคนอื่น ๆ เมื่อพวกเขาเปิดแอปพลิเคชันพวกเขาจะได้รับข้อผิดพลาด เครือข่ายที่เกี่ยวข้องหรือข้อผิดพลาดเฉพาะของอินสแตนซ์เกิดขึ้นขณะสร้างการเชื่อมต่อกับ SQL Server ไม่พบเซิร์ฟเวอร์หรือไม่สามารถเข้าถึงได้ แต่แอปพลิเคชันทำงานได้ดีบนพีซีของฉัน สตริงการเชื่อมต่อที่ฉันใช้คือ Data Source=ASHISHPC1\SQLEXPRESS;Initial Catalog=ACW;User ID=ash159;Password=ashish159 ซึ่งถูกเก็บไว้ใน.configไฟล์ แอปพลิเคชันทำงานได้ดีบนพีซีของฉัน สิ่งที่ฉันต้องทำ? ฉันเปิดใช้งาน TCP / IP ในเซิร์ฟเวอร์แล้ว แต่ยังคงมีข้อผิดพลาดเดิมอยู่ การเปลี่ยนแปลงบางอย่างในสตริงการเชื่อมต่อหรืออย่างอื่น?

2
การสำรองข้อมูลบันทึกธุรกรรมของ SQL Server: ทดสอบว่าบันทึกท้ายดังต่อไปนี้เป็นข้อมูลสำรองบันทึกล่าสุดที่รู้จักหรือไม่
เรากำลังใช้ SQL Server ด้วยโหมดการกู้คืนแบบเต็ม ด้วยการสำรองข้อมูลเต็มรูปแบบและการสำรองข้อมูลชุดต่างๆเราต้องการตรวจสอบว่าบันทึกการเชื่อมโยงนั้นสมบูรณ์จากการสำรองข้อมูลเต็มรูปแบบล่าสุดไปยังบันทึกหางปัจจุบันหรือไม่ (โดยไม่มีการกู้คืนการสำรองข้อมูลเหล่านี้จริง ๆ วัตถุประสงค์ของที่นี่คือการทดสอบความสอดคล้องของการสำรองข้อมูล) ฉันรู้วิธีการสำรองข้อมูลที่มีอยู่แล้ว: การใช้ RESTORE HEADERONLY ฉันได้รับ FirstLSN และ LastLSN ของทุกไฟล์ซึ่งสามารถเปรียบเทียบได้สำหรับไฟล์ที่ต่อเนื่องกันเพื่อตรวจสอบว่าเข้ากันได้หรือไม่ อย่างไรก็ตามฉันไม่ทราบวิธีการตรวจสอบว่าบันทึกท้ายติดตามการสำรองข้อมูลบันทึกล่าสุด หากฉันมีบันทึกหาง FirstLSN ฉันสามารถเปรียบเทียบกับ LastLSN ของข้อมูลสำรองบันทึกล่าสุดได้ แต่ฉันจะขอรับ FirstLSN ของบันทึกท้ายได้อย่างไร ฉันต้องการโซลูชันที่ใช้งานได้ตั้งแต่ SQL Server 2005 ขึ้นไป (ควรใช้ t-sql) จนถึงตอนนี้ฉันได้ค้นหา Google ไม่เป็นประโยชน์ Btw ฉันโพสต์สิ่งนี้ใน stackoverflow เป็นครั้งแรก; แต่ย้ายมาที่นี่เนื่องจากถูกตั้งค่าสถานะนอกหัวข้อที่นั่น แก้ไข ฉันลองทั้งสองวิธีแก้ปัญหาในตัวอย่างเล็ก ๆ (SQL Server 2005, 9.0.5057): BACKUP DATABASE …

3
ข้อกำหนดหน่วยความจำทั่วไปสำหรับ sql server 2008 r2
ฉันไม่ได้มีประสบการณ์กับงาน DBA แต่ฉันพยายามทำกรณีขอทรัพยากรเพิ่มเติมสำหรับเซิร์ฟเวอร์ sql ของเราและหวังว่าฉันจะได้คนฉลาด ๆ มาเสนอการประมาณคร่าวๆของสิ่งที่เราควรใช้ ฉันสงสัยว่าการจัดสรรทรัพยากรไอทีให้กับเซิร์ฟเวอร์ sql ที่ใช้งานจริงของเราอยู่ในระดับต่ำ ฮาร์ดแวร์และซอฟต์แวร์: ฐานข้อมูล: sql server 2008 r2 ฐานข้อมูลองค์กร Windows: Windows 2008 r2 Enterprise 64 บิตค่อนข้างแน่ใจว่าทำงานบน VMware หน่วยประมวลผล: Intel (R) Xeon (R) CPU E7-4860 @ 2.27GHz 2.26 GHz (โปรเซสเซอร์ 2 ตัว) หน่วยความจำที่ติดตั้ง: 4GB ฮาร์ดไดรฟ์สำหรับไฟล์ฐานข้อมูล: 300GB ฮาร์ดไดรฟ์สำหรับการสำรองข้อมูล: 150GB ฮาร์ดไดรฟ์สำหรับบันทึก: 100GB การประยุกต์ใช้: เรามีฐานข้อมูลหลัก 3 …

3
การสำรองข้อมูลเว็บไซต์โดย cube OLAP ของ SQL Server 2012 ถือว่าสมเหตุสมผลหรือไม่
ฉันได้รับมอบหมายให้ออกแบบสถาปัตยกรรมสำหรับโซลูชั่นค้าปลีกขนาดใหญ่ พวกเขาต้องการอนุญาตให้ลูกค้า 1.2 ล้านคนแต่ละคนเข้าสู่ระบบเว็บไซต์เพื่อดูการกระจายของการซื้อสินค้าล่าสุด (เดือนปัจจุบันเดือนก่อนหน้าปีต่อปี) มากกว่า 50 หมวดหมู่ ข้อมูลจะถูกอัปเดตทุกวัน ฉันกำลังคิดที่จะวาง OLAP cube ที่ใช้ SQL Server 2012 และให้เว็บไซต์สอบถามคิวบ์นี้โดยตรงใช้ประโยชน์จากคุณสมบัติเช่นการแคชเชิงรุก อย่างไรก็ตามในฐานะนักพัฒนาซอฟต์แวร์ฉันไม่มีประสบการณ์กับส่วนวิเคราะห์บริการของ SQL Server ดังนั้นฉันค่อนข้างกังวลเกี่ยวกับประสิทธิภาพของโซลูชันนี้ การเชื่อมต่อเว็บไซต์โดยตรงกับเสียงของ OLAP cube เหมือนโซลูชันที่เป็นไปได้หรือไม่ ระบบดังกล่าวตอบสนองต่อการโหลดจากผู้ใช้หลายคนอย่างคร่าวๆเช่น SQL Server หรือไม่ทำให้เป็นโซลูชันที่สมเหตุสมผลหรือพวกเขาทำหน้าที่แตกต่างไปจากเดิมอย่างสิ้นเชิง? ฉันไม่คาดหวังให้ผู้ใช้ตรวจสอบสถานะของพวกเขาบ่อยนักและแน่นอนว่าฉันจะใช้แคชกับเว็บเซิร์ฟเวอร์ ฯลฯ

1
SQL Server 2012 Simple Recovery Model ที่มี LOG_BACKUP log_reuse_wait_desc
ในขณะที่ฉันกำลังทำการตรวจสอบของตัวเองไม่มีใครรู้ว่าทำไมฐานข้อมูลในSIMPLEรูปแบบการกู้คืนมีLOG_BACKUPไว้เพื่อlog_reuse_wait_descอะไร SQL Server 2012 SP1 ฐานข้อมูลสร้างขึ้นเมื่อไม่กี่สัปดาห์ที่ผ่านมา ไม่มีการจำลองแบบไม่มีการมิเรอร์ไม่มีบันทึกการจัดส่งและไม่เคยมีสิ่งเหล่านี้ เราทำการสำรองฐานข้อมูลและกู้คืนไปยังอินสแตนซ์อื่นซึ่งจะแสดงSIMPLEและNOTHINGในlog_reuse_waitอินสแตนซ์อื่น แต่ฉันไม่คิดว่าการกู้คืนไปยังอินสแตนซ์อื่นเป็นวิธีที่ดีในการทำให้เกิดปัญหาอีกครั้งเนื่องจากการเรียกคืนการดำเนินการธุรกรรมย้อนกลับ / ย้อนกลับ

3
รับการเกิดขึ้นครั้งที่ 2 หรือ 3 ของค่าในสตริงที่มีการคั่น
ฉันมีตารางต่อไปนี้: ========================================================== | Name_Level_Class_Section | Phone Num | ========================================================== | Jacky_1_B2_23 | 1122554455 | | Johnhy_1_B2_24 | 1122554455 | | Peter_2_A5_3 | 1122554455 | ========================================================== ฉันกำลังคิดที่จะทำให้คำสั่ง SQL ของฉันง่ายขึ้นดังต่อไปนี้: select *, substring(Name_Level_Class_Section, CHARINDEX('_',Name_Level_Class_Section, (CHARINDEX('_', Name_Level_Class_Section) + 1)) + 1, CHARINDEX('_',Name_Level_Class_Section, (CHARINDEX('_',Name_Level_Class_Section, (CHARINDEX('_',Name_Level_Class_Section)+1))+1))- CHARINDEX('_',Name_Level_Class_Section, (CHARINDEX('_',Name_Level_Class_Section)+1))) as CLA from Bookings order by CLA …

2
ถ้าฉันล้มเหลวในฐานข้อมูลหนึ่งให้คนอื่น ๆ ที่ใช้จุดปลายมิรเรอร์เดียวกันล้มเหลวด้วยหรือไม่?
เรามีการติดตั้งฐานข้อมูลสองชุดสำหรับการมิเรอร์บนอินสแตนซ์ SQL Server เดียว: ฐานข้อมูลทดสอบและฐานข้อมูลการผลิต ทั้งสองได้มิร์เรอร์ไปยังเซิร์ฟเวอร์อื่นโดยใช้จุดปลายเดียวกันที่แน่นอน ถ้าฉันไปที่ฐานข้อมูลคุณสมบัติสำหรับฐานข้อมูลทดสอบและคลิกปุ่ม "Failover" มันจะล้มเหลวบนฐานข้อมูลการผลิตเช่นกันเนื่องจากฐานข้อมูลทั้งสองใช้จุดปลายทางมิเรอร์และคุณสมบัติที่อยู่เครือข่ายเซิร์ฟเวอร์ของพวกเขาเหมือนกันหรือไม่ ฉันกังวลเพราะเมื่อฉันตั้งค่าการมิเรอร์สำหรับฐานข้อมูลที่ 2 ฉันไม่จำเป็นต้องกำหนดค่าอะไรใหม่ มันใช้ข้อมูลที่มีอยู่ทั้งหมด ถ้าฉันใช้ปุ่ม "Failover" จากคุณสมบัติของฐานข้อมูลมันจะทำให้เกิดความล้มเหลวในฐานข้อมูลทั้งหมดที่ใช้จุดปลายนั้นหรือเพียงแค่ฐานข้อมูลเฉพาะที่ฉันกำลังดูคุณสมบัติใช่หรือไม่

4
ฉันจะเขียนคิวรีหน้าต่างที่รวมคอลัมน์เพื่อสร้างที่เก็บข้อมูลแยกได้อย่างไร?
ฉันมีตารางที่มีคอลัมน์ของค่าทศนิยมเช่นนี้ id value size -- ----- ---- 1 100 .02 2 99 .38 3 98 .13 4 97 .35 5 96 .15 6 95 .57 7 94 .25 8 93 .15 สิ่งที่ฉันต้องทำให้สำเร็จเป็นเรื่องยากที่จะอธิบายดังนั้นโปรดอดทนด้วย สิ่งที่ผมพยายามทำคือการสร้างมูลค่ารวมของsizeคอลัมน์ที่เพิ่มขึ้นโดยที่ 1 ในแต่ละครั้งแถวก่อนหน้านี้รวมถึง 1 valueเมื่อเรียงลำดับตาม ผลลัพธ์จะเป็นดังนี้: id value size bucket -- ----- ---- ------ 1 100 .02 1 …

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