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

SQL Server 2008 (รุ่นบิลด์หลัก 10.00.xxxx) โปรดติดแท็กด้วย sql-server

4
SQL“ ตารางที่ว่าง” ช้าลงหลังจากลบระเบียนทั้งหมด (12 ล้าน)?
ฉันมีอินสแตนซ์ SQL Server 2008 ที่มีคอลัมน์ประมาณ 150 คอลัมน์ ก่อนหน้านี้ฉันได้เติมข้อมูลตารางนี้ด้วยรายการประมาณ 12 ล้านรายการ แต่หลังจากนั้นจึงล้างตารางเพื่อเตรียมชุดข้อมูลใหม่ อย่างไรก็ตามคำสั่งที่เคยวิ่งทันทีบนโต๊ะว่างเช่น count(*)และselect top 1000ในSQL Management Studioตอนนี้พามหายุคให้ทำงาน SELECT COUNT(*) FROM TABLE_NAME ใช้เวลามากกว่า 11 นาทีเพื่อส่งคืน 0 และSELECT TOP 1000ใช้เวลาเกือบ 10 นาทีเพื่อส่งคืนตารางเปล่า ฉันยังสังเกตเห็นว่าพื้นที่ว่างบนฮาร์ดไดรฟ์ของฉันได้หายไปอย่างแท้จริง (ลดลงจากประมาณ 100G ถึง 20G) สิ่งเดียวที่เกิดขึ้นระหว่างคือแบบสอบถามเดียวที่ฉันวิ่ง: DELETE FROM TABLE_NAME เกิดอะไรขึ้นในโลกนี้!

4
วิธีการเปลี่ยนการเปรียบเทียบของ SQL Server
ฉันจะเปลี่ยนการเปรียบเทียบค่าเริ่มต้นของ SQL Server 2008 R2 Express สำหรับเซิร์ฟเวอร์ทั้งหมดและฐานข้อมูลเฉพาะได้อย่างไร มีวิธีการใช้อินเทอร์เฟซภาพของ SQL Server Management Studio หรือไม่? ในหน้าต่างคุณสมบัติเซิร์ฟเวอร์ (และในหน้าต่างคุณสมบัติฐานข้อมูลที่สอดคล้องกัน) คุณสมบัตินี้ไม่สามารถแก้ไขได้

2
จะค้นหาคำสั่ง SQL ที่ทำให้ tempdb เติบโตได้อย่างไร?
tempdb ของเซิร์ฟเวอร์ (SQL Server 2008) เพิ่มขึ้นเป็น 500GB + หลายครั้งทุกเดือน เป็นไปได้ไหมที่จะทราบว่าคำสั่ง SQL ใดที่ทำให้เกิดปัญหานี้? ปัญหานี้มักจะไม่ได้เกิดจากcreate table #temp...; insert into #temp...หรือเกิดจากการselect ... into #temp...รวมที่ซับซ้อน ขนาดเริ่มต้นของบางส่วนของ tempdb แฟ้มยังมีการตั้งค่าโดยอัตโนมัติเพื่อให้ค่าที่ยิ่งใหญ่กว่าทุกครั้ง จะป้องกันได้อย่างไร? บางครั้งแผนแคชป้องกันการปรับขนาด / ลดขนาดไฟล์ วิธีการค้นหาที่หนึ่งถือ tempdb หรือไม่

7
คอลัมน์ยาวส่งผลกระทบต่อประสิทธิภาพและการใช้งานดิสก์อย่างไร
ในโครงการปัจจุบันของเรามันเกิดขึ้นบ่อยเกินไปที่เราต้องขยายคอลัมน์ด้วยตัวละครสองสามตัว จากvarchar(20)ไปvarchar(30)เรื่อย ๆ ในความเป็นจริงมันมีความสำคัญมากแค่ไหน? สิ่งนี้ดีเพียงใด ผลกระทบของการอนุญาตเพียงแค่ 100 หรือ 200 หรือแม้กระทั่ง 500 ตัวอักษรสำหรับช่อง "อินพุต" ปกติคืออะไร อีเมลสามารถมีได้เพียง 320 ตัวอักษรดังนั้นตกลง - มีข้อ จำกัด ที่ดี แต่สิ่งที่ฉันจะได้รับถ้าฉันตั้งไว้ที่ 200 เพราะฉันไม่ได้คาดหวังที่อยู่อีเมลนานกว่านั้น โดยปกติตารางของเราจะไม่มีแถวมากกว่า 100,000 แถวและมีคอลัมน์มากถึง 20 หรือ 30 คอลัมน์ เราใช้ SQL Server 2008 ตอนนี้ แต่มันน่าสนใจที่จะทราบว่า DBs ต่างกันจัดการกับปัญหานี้อย่างไร ในกรณีที่ผลกระทบต่ำมาก - อย่างที่ฉันคาดไว้มันจะช่วยให้ได้ข้อโต้แย้งที่ดี (สำรองข้อมูลด้วยการเชื่อมโยง?) เพื่อโน้มน้าวใจ DBA ของฉันว่าความหวาดระแวงระยะยาวนี้ไม่จำเป็นจริงๆ ในกรณีที่เป็นฉันอยู่ที่นี่เพื่อเรียนรู้ :-)

3
ขนาดไฟล์หน้าที่แนะนำสำหรับ SQL 2008R2 บน Windows 2008R2
บทความของ Microsoft นี้ - วิธีการกำหนดขนาดหน้าแฟ้มที่เหมาะสมสำหรับ Windows Server 2008 และ Windows 2008 R2รุ่น 64 บิตให้คำแนะนำสำหรับการคำนวณขนาดหน้าไฟล์สำหรับ 64 บิต Windows 2008 และ Windows 2008R2 ไม่ต้องสงสัยเลยว่าทำงานได้ดีสำหรับเซิร์ฟเวอร์ที่ใช้งานทั่วไป ฉันสงสัยว่าคำแนะนำสำหรับ SQL Server 2008R2 ที่ทำงานบน Windows 2008 / R2 64 บิตคืออะไร ฉันคิดว่าเราต้องการข้อมูลหน่วยความจำเพียงเล็กน้อยในการกดปุ่มไฟล์หน้ามิฉะนั้น SQL อาจกดดิสก์สองครั้งเพื่อหาข้อมูล SQL Server อนุญาตให้ข้อมูลในหน่วยความจำตีไฟล์หน้าได้หรือไม่ ฉันได้รับคำแนะนำจากSQL Server 2008 R2 Books Online แล้วแต่ยังไม่พบการใช้ไฟล์หน้าใด ๆ นี่คือสถานการณ์การใช้งานที่อาจเกิดขึ้น: เมื่อกำหนดเซิร์ฟเวอร์จริงที่มี RAM …

6
วิธีเพิ่ม sysadmin ให้กับผู้ใช้ใน SQL Server 2008 เมื่อไม่มีบัญชี sysadmin
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 7 ปีที่ผ่านมา ฉันมีอินสแตนซ์ของ SQL Server 2008 ทำงานอยู่ น่าเสียดายในระหว่างการทดสอบฉันยกเลิกการเลือกสิทธิ์ดูแลระบบสำหรับการเข้าสู่ระบบของฉันและตอนนี้ไม่สามารถอ่านได้ (เพราะฉันไม่มีสิทธิ์ดูแลระบบ) ไม่มีบัญชีดูแลระบบอื่น ๆ สำหรับอินสแตนซ์ยกเว้น SA ฉันถูกตั้งค่าสำหรับการพิสูจน์ตัวจริงของ Windows ดังนั้นฉันจึงแฮ็ค LoginMode ในรีจิสตรีถึง 2 ดังนั้นฉันจึงสามารถเข้าสู่ระบบในฐานะ SA โดยใช้การพิสูจน์ตัวตนของ Sql นี่เป็นการตั้งค่าโหมดล็อกอินเป็นแบบผสมอย่างไรก็ตามผู้ใช้ SA ถูกปิดใช้งานโดยค่าเริ่มต้นและฉันไม่สามารถเปิดใช้งานได้อีกครั้งเพราะฉันไม่มีสิทธิ์ดูแลระบบ ฉันจะเปิดใช้งานการเข้าสู่ระบบ SA เพื่อให้ฉันสามารถเข้าสู่ระบบและโอนสิทธิดูแลระบบไปยังบัญชีปกติของฉันได้อย่างไร มีการตั้งค่ารีจิสทรีสำหรับสิ่งนี้ด้วยหรือเก็บไว้ในฐานข้อมูลหลักหรือไม่

2
แก้ไขตารางตรวจสอบข้อ จำกัด
จาก Object Explorer ใน SQL Server เมื่อเลือกและเขียนสคริปต์ข้อ จำกัด foreign-key รหัสต่อไปนี้จะถูกสร้างขึ้น USE [MyTestDatabase] GO ALTER TABLE [dbo].[T2] WITH NOCHECK ADD CONSTRAINT [FK_T2_T1] FOREIGN KEY([T1ID]) REFERENCES [dbo].[T1] ([T1ID]) GO ALTER TABLE [dbo].[T2] CHECK CONSTRAINT [FK_T2_T1] GO อะไรคือวัตถุประสงค์ของคำแถลงล่าสุด "การเปลี่ยนแปลงตารางตรวจสอบข้อ จำกัด "? ดูเหมือนจะไม่สำคัญว่าจะรันหรือไม่ จะไม่ล้มเหลวกับข้อมูลที่ไม่ดีที่มีอยู่และไม่เปลี่ยนแปลงว่าข้อ จำกัด จะถูกบังคับใช้กับข้อมูลใหม่ ขอบคุณ!

3
แนวปฏิบัติที่เหมาะสมที่สุดสำหรับการใช้ schema ใน SQL Server คืออะไร
ฉันเข้าใจความสามารถของ SQL Server Schemas แต่แนวทางปฏิบัติที่ดีที่สุดคืออะไร แน่ใจว่าพวกเขาให้ความปลอดภัยอีกชั้นหนึ่งและจัดกลุ่มตรรกะของวัตถุฐานข้อมูลภายในฐานข้อมูล แต่สิ่งที่เป็นปกติออกมี จากประสบการณ์ของฉันบ่อยครั้งที่ฉันไม่เห็นว่ามีการใช้สคีมาที่กำหนดเองจำนวนมาก เป็นเรื่องปกติหรือไม่ มันเป็นสถานการณ์ที่ไม่บ่อยนักที่ควรใช้สกีมาที่กำหนดเองหรือไม่

3
ดัชนีบนคอลัมน์ที่คำนวณแล้วต้องการค้นหาคีย์เพื่อรับคอลัมน์ในนิพจน์ที่คำนวณ
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 6 ปีที่แล้ว ฉันมีคอลัมน์ที่คำนวณแล้วยังคงอยู่บนโต๊ะซึ่งเป็นเพียงคอลัมน์ที่ต่อกันเช่น CREATE TABLE dbo.T ( ID INT IDENTITY(1, 1) NOT NULL CONSTRAINT PK_T_ID PRIMARY KEY, A VARCHAR(20) NOT NULL, B VARCHAR(20) NOT NULL, C VARCHAR(20) NOT NULL, D DATE NULL, E VARCHAR(20) NULL, Comp AS A + '-' + …

2
'CONCAT' ไม่ใช่ชื่อฟังก์ชันในตัวที่ได้รับการยอมรับ
ลูกค้ารายงานว่าพวกเขากำลังทำงานบน SQL Server 2012 และเราได้ส่งแบบสอบถามทดสอบสำหรับการทดสอบก่อนส่งมอบครั้งสุดท้ายอย่างไรก็ตาม: 'CONCAT' ไม่ใช่ชื่อฟังก์ชันในตัวที่ได้รับการยอมรับ ฉันเข้าใจว่าCONCAT()เป็นฟังก์ชันในตัวใหม่ที่นำมาใช้ใน SQL Server 2012 ซึ่งดีและดี แต่ฉันถูกขอให้ย้อนกลับการเปลี่ยนแปลงของฉันเพื่อให้ 2008R2 นี้เข้ากันได้ภายใต้หน้ากากของ "ผู้ใช้ที่ดำเนินการแบบสอบถามอาจไม่ มีสิทธิ์ Transact-SQL ในการดำเนินการ " ดังนั้นฉันแค่พิสูจน์จุดของฉันว่าไคลเอนต์ส่วนใหญ่มี SQL Server รุ่นอื่นติดตั้งใน DEV มากกว่าที่พวกเขาทำใน PROD ฉันไม่สามารถหาข้อมูลใด ๆ เกี่ยวกับการปฏิเสธการSELECT/EXECUTEอนุญาตโดยเฉพาะสำหรับฟังก์ชั่นที่มีมูลค่าสเกลาร์ในตัว แต่เป็นไปได้และถ้าเป็นเช่นนั้นผู้ใช้จะยังได้รับข้อความแสดงข้อผิดพลาดเดียวกันหรือไม่

3
พาร์ติชันคีย์ต้องเป็นส่วนหนึ่งของคีย์หลักด้วยหรือไม่
ฉันกำลังแบ่งตารางตามคอลัมน์ที่ไม่ใช่คีย์หลักหรือไม่ ฉันได้อ่านข้อมูลที่ขัดแย้งกันในวันนี้แล้วว่าคอลัมน์พาร์ติชันต้องเป็นส่วนหนึ่งของคีย์หลักหรือไม่ ไส้ของฉันบอกว่าไม่ แต่ฉันไม่แน่ใจ 100% ดังนั้นคำถาม ... คอลัมน์พาร์ติชันจะต้องเป็นส่วนหนึ่งของหลักหรือไม่ มันแนะนำวิธีหนึ่งหรืออื่น ๆ ? ฉันต้องสร้างดัชนีสำหรับพาร์ติชันคีย์หรือไม่ DBMS ทำมันเองโดยอัตโนมัติหรือไม่?

1
“ No Join Predicate” หมายถึงอะไรใน SQL Server
MSDN "ไม่มีกิจกรรมการเข้าร่วมเพรดิเคตคลาส " บอกว่า " แสดงว่ามีการดำเนินการค้นหาที่ไม่มีภาคแสดงการเข้าร่วม " แต่น่าเสียดายที่มันไม่ง่ายอย่างที่คิด ตัวอย่างเช่นสถานการณ์ที่ง่ายมาก: create table #temp1(i int); create table #temp2(i int); Select * from #temp1, #temp2 option (recompile); ไม่มีข้อมูลในตารางไม่มีคำเตือนอย่างใดอย่างหนึ่งถึงแม้ว่าจะเห็นได้ชัดว่าไม่มีการเข้าร่วมเพรดิเคต ถ้าฉันดูเอกสารประกอบสำหรับ SQL Server 2005 (ลิงก์เดียวกันเพียงแค่รุ่นเซิร์ฟเวอร์อื่น) จะมีประโยคพิเศษ: " เหตุการณ์นี้เกิดขึ้นเฉพาะเมื่อทั้งสองด้านของการเข้าร่วมกลับมามากกว่าหนึ่งแถว " สิ่งนี้จะทำให้ ความรู้สึกที่สมบูรณ์แบบในสถานการณ์ก่อนหน้า ไม่มีข้อมูลดังนั้นทั้งสองฝ่ายจึงคืนค่า 0 แถวและไม่มีการเตือน แทรกแถวรับคำเตือน โอเคดี. แต่สำหรับสถานการณ์ที่สับสนต่อไปฉันจะแทรกค่าเดียวกันในทั้งสองตาราง: Insert into #temp1 (i) values (1) Insert into …

1
มีความเสี่ยงใด ๆ หรือไม่ในการให้สิทธิ์ผู้ใช้ SQL Server SHOWPLAN
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 7 ปีที่ผ่านมา ฉันกำลังปรับแต่งประสิทธิภาพบางอย่างบนฐานข้อมูล SQL Server 2008 ขนาดใหญ่และกลุ่มไอทีไม่ต้องการให้สิทธิ์ SHOWPLAN ในอดีต "แสดงแผนการดำเนินการ" เป็นวิธีที่มีประสิทธิภาพที่สุดในการทำความเข้าใจประสิทธิภาพของคำสั่งและขั้นตอนต่างๆ มีความเสี่ยงอะไรบ้างในการให้สิทธิ์นี้ มีเหตุผลที่ถูกต้องสำหรับข้อ จำกัด นี้ในสำเนาการพัฒนาของฐานข้อมูลหรือไม่? หมายเหตุ: กลุ่ม SQL IT นี้มีฐานข้อมูลมากกว่า 200 รายการภายใต้อินสแตนซ์ SQL Server เดียว ขอบคุณ คำตอบ : ฉันกำลังขาดการตอบสนองหมายความว่าไม่มีความเสี่ยงด้านความปลอดภัยที่สำคัญนอกเหนือจากที่ระบุไว้ด้านล่าง โดยทั่วไปการ จำกัด สิ่งนี้ไว้ในฐานข้อมูลการพัฒนานั้นเป็นการต่อต้าน ฉันจะอัปเดตสิ่งนี้หากมีคำตอบที่ดีกว่า ขอบคุณสำหรับความคิดเห็นของคุณ!

2
จะเปลี่ยนชื่ออินสแตนซ์ของ SQL Server Express 2008 ได้อย่างไร
คำถามนี้ถูกโยกย้ายจาก Server Fault เนื่องจากสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 7 ปีที่ผ่านมา บนเครื่องพัฒนาของฉันฉันได้ติดตั้ง SQL Server Express 2008 .\SQLEXPRESSแต่ก็มีชื่ออินสแตนซ์ ฉันต้องการให้เป็นอินสแตนซ์เริ่มต้น ฉันค่อนข้างมั่นใจว่าฉันเลือกตัวเลือก "Default Instance" ในการตั้งค่า แต่ดูเหมือนจะไม่ทำงาน มีวิธีใดบ้างที่ฉันสามารถเปลี่ยนชื่ออินสแตนซ์ตอนนี้ ที่เพิ่ม: ดูเหมือนว่านี่เป็นข้อบกพร่องที่รู้จักในตัวติดตั้ง มันจะได้รับการแก้ไขเมื่อ PCU 1 (PubliC Update) ออกมา แต่ไม่มีการบอกว่าจะเกิดอะไรขึ้น ในเวลาเฉลี่ยมีวิธีแก้ไขสองวิธี: เมื่อติดตั้งให้เลือก "ชื่ออินสแตนซ์" MSSQLSERVERและป้อน ติดตั้งอินสแตนซ์ที่มีชื่อจากนั้นติดตั้งอินสแตนซ์อื่นและในเวลานี้ตัวเลือก "อินสแตนซ์เริ่มต้น" จะทำงาน ยังคงคำถามยังคงมีวิธีใดที่จะเปลี่ยนชื่ออินสแตนซ์โดยไม่ต้องติดตั้งใหม่หรือไม่? เนื่องจากการตั้งค่าเป็นอาการปวดช้า XD

3
ฉันจะรับรายการตารางที่แบ่งพาร์ติชันทั้งหมดในฐานข้อมูลของฉันได้อย่างไร
ฉันจะรับรายการตารางที่แบ่งพาร์ติชันทั้งหมดในฐานข้อมูลของฉันได้อย่างไร ฉันควรดูตารางระบบ / DMVs ใด

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