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

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

3
เป็นวิธีที่ดีที่สุดในการเพิ่มการจัดการข้อผิดพลาดใน SQL 2005 procs จัดเก็บคืออะไร?
เป็นวิธีที่ดีในการทำให้ procs ที่เก็บไว้มีประสิทธิภาพเพียงพอที่จะสามารถปรับขนาดได้ดีมากและยังมีการจัดการข้อผิดพลาดอะไร นอกจากนี้วิธีที่ดีที่สุดในการจัดการสถานการณ์ข้อผิดพลาดหลายอย่างใน proc ที่จัดเก็บและมีระบบการตอบรับอัจฉริยะที่จะส่งคืนข้อมูลข้อผิดพลาดที่มีความหมายไปยังแอพที่โทรอยู่คืออะไร?

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

1
ฉันจะกำหนดค่าสุ่มที่แตกต่างให้กับแต่ละแถวในคำสั่ง SELECT ได้อย่างไร
โปรดดูรหัสนี้: create table #t1( id int identity (1,1), val varchar(10) ); insert into #t1 values ('a'); insert into #t1 values ('b'); insert into #t1 values ('c'); insert into #t1 values ('d'); ตอนนี้เมื่อใดก็ตามที่คุณดำเนินการนี้ select *, ( select top 1 val from #t1 order by NEWID()) rnd from #t1 order by 1; …

1
มีวิธีที่เชื่อถือได้ในการกำหนดเมื่อคุณควรเรียกใช้ DBCC CLEANTABLE เพื่อเรียกคืนพื้นที่หรือไม่
เมื่อเร็ว ๆ นี้แทนที่จะเพิ่งเพิ่มไฟล์เมื่อพวกเขาใกล้ถึงการใช้ไฟล์ 80% ฉันได้ทำเชิงรุกมากขึ้นในการเรียกคืนพื้นที่ผ่านเทคนิคทั่วไปเช่นการจัดเรียงข้อมูลฮีปเพิ่มและวางดัชนีคลัสเตอร์การใช้การบีบอัดแถวหรือหน้าเป็นต้น แต่มีเพียงไม่กี่กรณีที่ผมสามารถที่จะเรียกคืนพื้นที่มากยิ่งขึ้นโดยการดำเนินการDBCC CLEANTABLE ด้วยฐานข้อมูลหลายร้อยในสภาพแวดล้อมของฉันมันเป็นไปไม่ได้ที่จะรู้ว่าสิ่งที่ผู้ใช้ทำในแต่ละคนและเป็นที่ยอมรับอย่างสมบูรณ์ว่าจะมีการเปลี่ยนแปลงที่เกี่ยวข้องกับการลดลงของคอลัมน์ความยาวคงที่ ฉันมักจะพบโอกาสเหล่านี้โดยดูที่การนับแถวกับจำนวนหน้าในสคริปต์การใช้พื้นที่วัตถุบางอย่างที่ฉันเขียน ฉันต้องการดำเนินการขั้นตอนต่อไปโดยพยายามตรวจจับสถานการณ์เหล่านี้โดยอัตโนมัติ สิ่งที่ฉันอยากรู้คือถ้ามีใครบางคนกำลังติดตามโอกาสประเภทนี้อย่างกระตือรือร้นและถ้าเป็นเช่นนั้นคุณมองหาอะไรเป็นพิเศษ ความคิดของฉันคือการเขียนบางอย่างตามแนวการรวบรวมขนาดสูงสุดและต่ำสุดของแถวจำนวนแถวในตารางจำนวนหน้าที่จัดสรรและจำนวนหน้าที่ใช้แล้วทำคณิตศาสตร์พื้นฐานเพื่อบันทึกผลลัพธ์ที่ อยู่ข้างนอกสิ่งที่จะ "คาดหวัง"

1
IDENTITY_INSERT มีผลต่อการทำงานพร้อมกันอย่างไร
ฉันกำลังพยายามช่วยเหลือลูกค้าด้วยโปรแกรมเสริม SAP ของ บริษัท อื่นที่มีปัญหาการโพสต์และไม่ได้รับการสนับสนุน ภายใต้สถานการณ์บางอย่างมันจะเก็บถาวรและโพสต์ที่ไม่สมบูรณ์จากตารางคิวการโพสต์ไปยังตารางเก็บถาวรการโพสต์ ฉันต้องการย้ายผลลัพธ์ที่เก็บถาวรเหล่านี้กลับไปที่คิว ID ของคิวคือคอลัมน์ข้อมูลประจำตัวและฉันต้องการเก็บไว้เหมือนเดิม คำถามคือถ้าฉันทำ identity_insert on / insert / identity_insert off ฉันจะคาดหวังอะไรเกี่ยวกับการเกิดพร้อมกันกับกระบวนการที่สร้างรายการคิวและคาดว่าคอลัมน์ identity จะถูกสร้างขึ้นโดยอัตโนมัติ? พอยน์เตอร์ใด ๆ ในวิธีที่ดีที่สุดในการแสดงพฤติกรรมดังกล่าวจะได้รับการชื่นชมอย่างมากเช่นกัน

1
ความแตกต่างระหว่าง last_worker_time และ last_elapsed_time ใน DMV sys.dm_exec_query_stats คืออะไร?
สิ่งที่เป็นความหมายของlast_worker_timeและlast_elapsed_timeใน DMV sys.dm_exec_query_statsและสิ่งที่แตกต่างมันระหว่างพวกเขา? เมื่อฉันไฟด้านล่างแบบสอบถาม SELECT TOP 20 qs.last_worker_time, qs.last_worker_time/1000000 last_worker_time_in_S, qs.last_elapsed_time, qs.last_elapsed_time/1000000 last_elapsed_time_in_S FROM sys.dm_exec_query_stats qs order by qs.last_worker_time desc ฉันได้รับ reult เช่นด้านล่าง ในสิ่งที่ฉันสังเกตเห็นว่าทั้งสองมีค่าเท่ากันหรือเวลาที่ผ่านไปมากกว่าเวลาทำงานฉันอยากจะทำความเข้าใจกับความสำคัญของทั้งสองอย่างดังนั้นมันอาจช่วยฉันในการปรับแต่งการแสดง

3
ขนาดฐานข้อมูล - MDF ใหญ่เกินไป?
ฉันกำลังบำรุงรักษาฐานข้อมูล SQL Server 2005 ซึ่งโฮสต์ประมาณ 2.9Tb ของข้อมูล (2 x 1.45Tb - ฉันมี schema RAW และ schema การวิเคราะห์ดังนั้นโดยทั่วไปแล้วสองชุดของข้อมูลที่ติดเครื่อง) รูปแบบการกู้คืนง่ายและ.ldfอยู่ที่ 6Gb ไม่ว่าจะด้วยเหตุผลใดก็ตาม.mdfคือ 7.5Tb ตอนนี้อาจมีคอลัมน์เพิ่มเติมเพียง 2-3 คอลัมน์ในตารางวิเคราะห์และมีNVARCHAR(MAX)คอลัมน์ไม่มากซึ่งจากสิ่งที่ฉัน (อาจเข้าใจผิด - โปรดแก้ไขให้ถูกต้องถ้าฉันผิด) อาจทำให้เกิดการจัดสรรพื้นที่เพิ่มเติม หลังจากหดฐานข้อมูลตอนนี้ - มันอยู่ที่ ~ 9Tb ก่อนหน้านั้น ความคิดใด ๆ และโปรดแจ้งให้เราทราบหากคุณมีคำถามเพิ่มเติม - ฉันยังใหม่ต่อการดูแลฐานข้อมูลและการเพิ่มประสิทธิภาพ (โดยปกติฉันจะไม่ทำงานด้านนี้ :)) ขอบคุณมาก! Andrija

3
ฉันจะตรวจสอบว่ามีการ จำกัด ขนาด Express Edition ได้อย่างไร
ฉันสับสน. AFAIK SQL Server 2005 Express มีขีด จำกัด ของความจุ 4GB ฐานข้อมูล ข้อมูลขนาด อย่างไรก็ตามฉันมีผลลัพธ์ต่อไปนี้จากsp_spaceused: ฉันจะตรวจสอบว่า DB ของฉันมีขนาดเกินขีด จำกัด ได้อย่างไร? พื้นที่ที่ไม่ได้ปันส่วนเป็นจำนวนที่มากspace leftจนเกินขีด จำกัด หรือไม่? ฉันเหลือพื้นที่เท่าไหร่ ไม่index_sizeนับรวมในขีด จำกัด ?

1
SQL Server 2000 ถึง 2008 ถึง 2012
เรากำลังโยกย้ายจาก SQL Server 2000 ถึง 2008 ในขณะนี้ เราทำการเปลี่ยนแปลงโค้ดสคริปต์เนื่องจากมีการเปลี่ยนแปลงมากมายตั้งแต่ปีพ. ศ. 2543 ถึง 2551 ขณะทำการเปลี่ยนแปลงสิ่งที่ฉันต้องการรู้คือ - มีอะไรที่ฉันสามารถทำได้ตอนนี้เพื่อให้เข้ากันได้กับปี 2012 ที่ ในเวลาเดียวกัน อย่างน้อยการเปลี่ยนแปลงเหล่านั้นที่เข้ากันได้ย้อนหลังจาก 2012 ถึง 2008 และอื่น ๆ เหตุผลที่ฉันต้องการทำเช่นนี้คือการลดความพยายามใด ๆ ในอนาคต (3 ถึงสี่ปีต่อจากนี้) เมื่อเราตัดสินใจย้ายจาก 2008 เป็น 2012 อะไรที่ ทั้งหมดที่ฉันสามารถทำได้หรือจำเป็นต้องรู้

3
ฉันจะตรวจสอบการตั้งค่าความปลอดภัยของ SQL Server Endpoint ได้อย่างไร
ฉันอยู่ในกระบวนการสร้างสภาพแวดล้อมการทดสอบสำหรับพนักงานพัฒนาเซิร์ฟเวอร์ SQL ของเรา ในการผลิตเรามี SQL Server 3 ตัวSQL01มีฐานข้อมูลหลายตัวที่ทำมิเรอSQL02ร์ SQL03ทำหน้าที่เป็นพยานใน "ความปลอดภัยสูงพร้อมการล้มเหลวอัตโนมัติ" หรือการกำหนดค่าแบบซิงโครนัส ฉันใช้ VMWare P2V เพื่อทำเวอร์ชวลไลเซชันทั้งสามเครื่องบนฮาร์ดแวร์แยกต่างหากกำหนดค่า SID ของเครื่องอีกครั้งและทำการซ่อนที่อยู่ IP ของเซิร์ฟเวอร์การผลิตของเราจากเครื่องใหม่เหล่านี้ ตอนแรกฉันลืมที่จะ blackhole เครื่องจักรพยานการผลิตดังนั้นฐานข้อมูลในเครื่องทดสอบยังคงใช้SQL03เครื่องเป็นพยาน TEST03สังเกตเห็นปัญหาที่ฉันตัดสินใจที่จะกำหนดค่าฐานข้อมูลในการทดสอบที่จะชี้ไปที่พยานทดสอบเสมือนจริงขึ้นใหม่เรียกว่า ในการกำหนดค่าฐานข้อมูลใหม่เพื่อใช้พยานคนใหม่ฉันได้ป้อนคำสั่งต่อไปนี้บนเซิร์ฟเวอร์หลักTEST01: ALTER DATABASE [TestDB] SET WITNESS = 'TCP://TEST03.domain.inet:5022'; การตอบสนองที่ไม่คาดคิด: The ALTER DATABASE command could not be sent to the remote server instance 'TCP://TEST03.domain.inet:5022'. The database mirroring configuration …

3
ข้อ จำกัด อย่างหนักสำหรับการรวมบทความการจำลองแบบนับรวมกันไหม
พื้นหลังเล็กน้อย เราพัฒนาแอพที่ใช้การจำลองแบบผสาน ขณะนี้เรากำลังเผยแพร่บทความประมาณ 212 บทความและทุกอย่างเรียบร้อยดีเนื่องจากดูเหมือนว่าจะอยู่ในขอบเขตการ จำกัด จำนวนบทความที่ 256 (การใช้ SQL Standard 2005 ที่เซิร์ฟเวอร์และ 2005 Express ที่ระดับสมาชิก) เราอยู่ในขั้นตอนการพัฒนาเวอร์ชั่นใหม่โดยมีฐานข้อมูลใหม่ที่สร้างขึ้นจากพื้นฐานซึ่งจะมีความต้องการระบบขั้นต่ำของฝั่งเซิร์ฟเวอร์ SQL 2008 R2 Standard และ Express 2008 R2 ที่ปลายไคลเอนต์ซึ่งดูเหมือนว่าจะมี จำกัด การนับ 256 เดียวกันสำหรับบทความที่เผยแพร่ (ใช่เราจะสนับสนุนปี 2012 ด้วยเช่นกัน) คำถามมาในที่เราได้ทดสอบเผยแพร่บทความมากกว่า 400 รายการในเวอร์ชันใหม่และการทดสอบทุกอย่างใช้งานได้ (การสร้างผับการสร้างสแนปชอตและการสมัครสมาชิกและการจำลองแบบเอง) มีใครเกินขีด จำกัด การนับก่อนหน้านี้หรือไม่และนี่เป็นเพียงข้อ จำกัด ที่แนะนำอย่างนุ่มนวลหรือไม่ เราไม่เห็นข้อผิดพลาดใด ๆ ทั้งในระหว่างการสร้างสิ่งพิมพ์หรือการสร้างสมาชิก ตามบทความนี้: http://msdn.microsoft.com/en-us/library/ms143432%28v=sql.105%29 ฉันรอการโทรกลับจาก Microsoft แต่ฉันต้องการทราบว่ามีใครเห็นสิ่งนี้มาก่อนใน …

3
มีวิธีทดสอบว่า DELETE จะล้มเหลวเนื่องจากข้อ จำกัด หรือไม่
ฉันต้องการที่จะคาดการณ์ว่าจะมีการลบ DELETE หรือไม่โดยไม่ทำการลบ ตัวเลือกของฉันสำหรับการทำสิ่งนี้มีอะไรบ้าง มีวิธีง่ายๆในการทำ "dry run" ของ DELETE หรือไม่?

2
ฉันจะตัดอักขระที่ไม่ใช่ตัวเลขออกจากสตริงได้อย่างไร
ผู้ใช้ป้อนคำค้นหาในกล่องและค่านั้นจะถูกส่งผ่านไปยังขั้นตอนการจัดเก็บและตรวจสอบกับเขตข้อมูลที่แตกต่างกันไม่กี่ในฐานข้อมูล ฟิลด์เหล่านี้ไม่ได้เป็นชนิดข้อมูลเดียวกันเสมอไป หนึ่งฟิลด์ (หมายเลขโทรศัพท์) ประกอบด้วยตัวเลขทั้งหมดดังนั้นเมื่อตรวจสอบจะตัดอักขระที่ไม่ใช่ตัวเลขทั้งหมดออกจากสตริงโดยใช้ฟังก์ชัน. Net CLR SELECT dbo.RegexReplace('(123)123-4567', '[^0-9]', '') ปัญหาคือฟังก์ชั่นนี้หยุดทำงานทันทีที่มีข้อผิดพลาดดังต่อไปนี้: ข่าวสารเกี่ยวกับ 6533, ระดับ 16, สถานะ 49, บรรทัด 2 AppDomain MyDBName.dbo [runtime] .1575 ถูกยกเลิกการโหลดโดยนโยบายการเลื่อนระดับเพื่อให้แน่ใจว่า ความสอดคล้องของใบสมัครของคุณ หน่วยความจำไม่เพียงพอเกิดขึ้นขณะเข้าถึงทรัพยากรที่สำคัญ System.Threading.ThreadAbortException: ข้อยกเว้นชนิด 'System.Threading.ThreadAbortException' ถูกส่งไป System.Threading.ThreadAbortException: ฉันลองคำแนะนำที่โพสต์บนMSDNสำหรับข้อผิดพลาดนี้ แต่ฉันยังคงพบปัญหา ในขณะนี้การสลับไปใช้เซิร์ฟเวอร์ 64 บิตไม่ใช่ตัวเลือกสำหรับเรา ฉันรู้ว่าการรีสตาร์ทเซิร์ฟเวอร์จะปล่อยหน่วยความจำใด ๆ ก็ตาม แต่นั่นไม่ใช่วิธีแก้ปัญหาที่ใช้งานได้ในสภาพแวดล้อมการใช้งานจริง มีวิธีการแยกอักขระที่ไม่ใช่ตัวเลขออกจากสตริงใน SQL Server 2005 โดยใช้ T-SQL เท่านั้นหรือไม่

2
การแตกแฟรกเมนต์ดัชนีขณะประมวลผลอย่างต่อเนื่อง
SQL Server 2005 ฉันต้องสามารถประมวลผลระเบียน 350M อย่างต่อเนื่องในตารางบันทึก 900M แบบสอบถามที่ฉันใช้เพื่อเลือกระเบียนที่จะดำเนินการจะแยกส่วนอย่างไม่ดีตามที่ฉันดำเนินการและฉันจำเป็นต้องหยุดการประมวลผลเพื่อสร้างดัชนีใหม่ จำลองข้อมูล & คิวรีแบบหลอก ... /**************************************/ CREATE TABLE [Table] ( [PrimaryKeyId] [INT] IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED, [ForeignKeyId] [INT] NOT NULL, /* more columns ... */ [DataType] [CHAR](1) NOT NULL, [DataStatus] [DATETIME] NULL, [ProcessDate] [DATETIME] NOT NULL, [ProcessThreadId] VARCHAR (100) NULL ); …

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

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