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

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

3
ตรวจสอบว่าการตรวจสอบโหมดผสมถูกเปิดใช้งานโดยไม่ต้องเข้าสู่ระบบหรือไม่
เป็นไปได้ใน SQL Server เพื่อตรวจสอบว่ามีการเปิดใช้งานการรับรองความถูกต้องของโหมดผสมโดยไม่ต้องเข้าสู่ระบบ SQL Server หรือไม่

5
วิธีการซ่อน / ปิดการใช้งานตารางโดยไม่ต้องวางเพื่อตรวจสอบความซ้ำซ้อน?
ฉันต้องรักษาและขยายระบบเดิมซึ่งมีวิธีการบริการเว็บและตารางฐานข้อมูลที่ไม่ได้ใช้อีกต่อไป เนื่องจากฉันไม่แน่ใจว่าตารางซ้ำซ้อนจริง ๆ ฉันกลัวที่จะทิ้งมัน มีวิธีอื่นที่จะทำให้ได้ผลที่เหมือนกัน (ไม่สามารถใช้ตารางได้อีกต่อไป) โดยไม่ทิ้งมันไว้? ความคิดของฉันคือการถ่ายโอนไปยังคีมาที่แตกต่างกัน (เช่นDeleted) dboจากค่าเริ่มต้นปัจจุบัน IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'Deleted') BEGIN EXEC('CREATE SCHEMA Deleted') END ALTER SCHEMA Deleted TRANSFER dbo.TableName; มีตัวเลือกอื่น ๆ หรือมีข้อเสียเปรียบกับวิธี schema?

1
CREATE TABLE SomeSchema # TempTableName มีข้อบกพร่องหรือไม่
ทดสอบเตียงง่าย ๆ : USE tempdb; GO /* This DROP TABLE should not be necessary, since the DROP SCHEMA should drop the table if it is contained within the schema, as I'd expect it to be. */ IF COALESCE(OBJECT_ID('tempdb..#MyTempTable'), 0) <> 0 DROP TABLE #MyTempTable; IF EXISTS (SELECT 1 FROM sys.schemas …

5
ดูการล็อกที่ได้รับระหว่างการดำเนินการสืบค้น (SQL Server)
แผนการดำเนินการแบบสอบถามจะไม่แสดงรายละเอียดการล็อกตามค่าเริ่มต้นเป็นไปได้หรือไม่ที่จะดูการล็อกพร้อมกับชนิดที่ได้มาระหว่างการดำเนินการค้นหา

2
“ อัตราส่วนการเข้าแคชบัฟเฟอร์” ของ 9990 หมายถึงอะไร
ฉันได้รับข้อความค้นหานี้จากโพสต์บล็อก : SELECT object_name, counter_name, cntr_value FROM sys.dm_os_performance_counters WHERE [object_name] LIKE '%Buffer Manager%' AND [counter_name] = 'Buffer cache hit ratio' โพสต์บอกว่าจะให้เปอร์เซ็นต์ของการเข้าชมแคช ดูเหมือนว่าจะระบุว่าจะมีค่า 0-100 (แสดงให้เห็นผลลัพธ์ที่ 87) แต่เมื่อฉันเรียกใช้ฉันได้รับตัวเลขที่สูงมาก นี่คือตัวอย่าง: object_name counter_name cntr_value SQLServer:Buffer Manager Buffer cache hit ratio 9990 หมายความว่า 99.90% หรือไม่ ถ้าไม่มันหมายความว่าอย่างไร และฉันจะได้รับมูลค่าที่แท้จริงได้อย่างไร หมายเหตุ: ฉันมีค่าต่ำสุด257และสูงถึง352363 ในกรณีที่มีความเกี่ยวข้องนี่คือสถิติเซิร์ฟเวอร์อื่น ๆ บางประการ: อายุขัยของหน้า: 145 หน้าอ่าน …

1
สาเหตุของปัญหานี้กับ CONVERT () คืออะไร
พิจารณาสองข้อความต่อไปนี้: PRINT CONVERT(NUMERIC(38, 0), 0x0100000001, 0); PRINT CONVERT(NUMERIC(38, 0), 0x0100010001, 0); ทั้งสองงบกลับ-1; ไม่ถูกต้องเนื่องจากค่าไบนารีที่สองเป็นทศนิยม 65,536 สูงกว่าค่าแรกใช่หรือไม่ แน่นอนสิ่งนี้ไม่สามารถเกิดขึ้นได้เนื่องจากการตัดทอนเงียบ ถ้าฉันเรียกใช้คำสั่งต่อไปนี้: PRINT CONVERT(NUMERIC(38, 0), 0x00000001, 0); PRINT CONVERT(NUMERIC(38, 0), 0x00010001, 0); ฉันพบข้อผิดพลาดต่อไปนี้: Msg 8114, Level 16, State 5, Line 1 Error converting data type varbinary to numeric. ฉันจะวินิจฉัยสิ่งที่เกิดขึ้นที่นี่ได้อย่างไร ฉันใช้สิ่งนี้ใน SQL Server 2012, v11.0.5058 ผลลัพธ์จะเหมือนกันใน …

3
ฉันจะพิจารณาอย่างน่าเชื่อถือได้อย่างไรว่าอินสแตนซ์ของ SQL Server ที่ระบุมี“ ล็อกหน้าในหน่วยความจำ” ถูกต้องหรือไม่?
"ล็อคหน้าในหน่วยความจำ" ด้านขวาสามารถมอบให้กับบัญชีบริการที่ใช้โดย SQL Server สิ่งนี้ทำให้ SQL Server สามารถป้องกันหน่วยความจำเพจได้กับดิสก์ ฉันสังเกตเห็นว่าเครื่อง SQL Server ของเราหลายเครื่องไม่มีนโยบายภายในที่กำหนดค่าไว้ให้ใช้สิทธิ์นี้สำหรับบัญชีบริการที่ใช้โดย SQL Server เนื่องจากเรามีเซิร์ฟเวอร์จำนวนมากจึงน่าเบื่อที่สุดที่จะตรวจสอบแต่ละเซิร์ฟเวอร์ด้วยตนเองโดยใช้คอนโซลการจัดการ "นโยบายระบบท้องถิ่น" มีแบบสอบถาม T-SQL, ขยายกระบวนงานที่เก็บไว้หรือวิธีอื่น ๆ ที่ฉันสามารถใช้เพื่อตรวจสอบว่าเซิร์ฟเวอร์ในคำถามมีสิทธิหรือไม่? ฉันต้องการที่จะไม่ใช้EXEC xp_readerrorlog 0, 1, 'lock memory privilege was not granted';เพราะมันต้องอาศัยการตรวจสอบบันทึกข้อผิดพลาด SQL Server ปัจจุบัน และบันทึกข้อผิดพลาดนั้นอาจไม่มีรายการที่เกี่ยวข้องสมมติว่าบันทึกได้ถูกยกเลิกเนื่องจากเซิร์ฟเวอร์รีสตาร์ทครั้งล่าสุด ฉันรู้ว่าฉันสามารถตรวจสอบบันทึกเก่าโดยแก้ไขพารามิเตอร์แรกจาก0เป็น1ฯลฯ อย่างไรก็ตามเราเก็บบันทึกข้อผิดพลาดเพียง 10 รายการเท่านั้นและนั่นอาจไม่เพียงพอ ฉันต้องการวิธีที่ไม่ปลอดภัยในการยืนยันการตั้งค่า

1
อายุการใช้งานหน้า SQL Server 2012 รีเซ็ตเป็น 0 หลังจากนั้นประมาณ 50 วัน
ฉันสังเกตเห็นพฤติกรรมแปลก ๆ ในคลัสเตอร์ HA แบบ 2 เซิร์ฟเวอร์และฉันหวังว่าจะมีคนยืนยันความสงสัยของฉันหรืออาจมีคำอธิบายอื่น ๆ ... นี่คือการตั้งค่าของฉัน: การติดตั้ง SQL 2012 SP1 แบบ 2 เซิร์ฟเวอร์ SQL AlwaysOn HA เปิดใช้งานสำหรับฐานข้อมูลไม่กี่แห่ง ซีพียูคือ 2.4GHz, 4 คอร์ RAM คือ 34 GB (เป็นอินสแตนซ์ AWS ดังนั้นจึงเป็นเลขคี่) การใช้ทรัพยากรค่อนข้างต่ำ - เซิร์ฟเวอร์แต่ละเครื่องมีหน่วยความจำไม่เกิน 14+ GB และ SQL ไม่ได้ต่อยอดกับจำนวนหน่วยความจำที่ใช้ เวลาในการเข้าถึงดิสก์นั้นดี - ไม่ค่อยเกิน 15ms / อ่านหรือเขียน ฐานข้อมูลไม่ใหญ่ - 1 GB, …

1
SQL Server 2012 Standard Server ที่มี 50 อินสแตนซ์จะไม่ถอนการติดตั้งอินสแตนซ์
ฉันสงสัยว่านี่เป็นปัญหาเพราะเราพบขีด จำกัด สูงสุด 50 อินสแตนซ์ของ SQL Server ที่ขีด จำกัด มันจะไม่ติดตั้งอินสแตนซ์เพิ่มเติมตามธรรมชาติ อย่างไรก็ตามดูเหมือนว่าจะไม่ติดตั้งให้เหมือนกัน แย่กว่านั้น แฮงค์ที่กล่องโต้ตอบ "เลือกคุณสมบัติ" เมื่อคุณกดปุ่มถัดไปหลังจากเลือก SQL Engine สำหรับอินสแตนซ์ ฉันไม่พบข้อมูลมากมายเกี่ยวกับสิ่งนี้ สิ่งที่น่าสนใจที่สุดคือ: http://social.msdn.microsoft.com/Forums/sqlserver/en-US/24a1e5f3-25f3-48c8-973a-4c6a18578e42/trying-to-uninstall-1-of-50-sql -Server-2008-R2-ด่วนแฮงค์-on-โปรดรอ นอกจากนี้ยังแนะนำให้ใช้setup.exeกับพารามิเตอร์บางตัวเพื่อถอนการติดตั้งอินสแตนซ์ แต่ฉันไม่สามารถทำได้โดยไม่ต้องเริ่ม GUI และเข้าสู่การถอนการติดตั้งปกติซึ่งล้มเหลว ระดับความสูงไม่ทำอะไรเลย รีบูตไม่ได้ช่วย บันทึกบอกว่า "ถูกยกเลิกโดยผู้ใช้" เท่านั้นเพราะฉันต้องฆ่ามันในที่สุด ไม่มีอะไรชัดเจนก่อนที่จะถึงจุดนั้น การตรวจสอบเป็นสีเขียวทั้งหมด การตั้งค่าบอกว่าเป็น SQL Server 2012 SP1 - อินสแตนซ์ทั้งหมดอยู่ที่ 11.0.2100 ฉันเลือกที่จะตอบ / ปิดคำถามของฉันเองเนื่องจาก Microsoft ได้ปิดตั๋วด้วยสถานะ "ไม่แก้ไข" หวังว่าพวกเขาจะแก้ไขสิ่งนี้สำหรับ SQL Server …

2
SSIS 2012 สร้างตัวแปรสภาพแวดล้อมล้มเหลว
ฉันกำลังทำงานสคริปต์เพื่อพอร์ตสภาพแวดล้อมจากเซิร์ฟเวอร์หนึ่งไปยังเซิร์ฟเวอร์อื่น ฉันพบปัญหาในการโทรติดต่อcatalog.create_environment_variableเพื่อรับข้อผิดพลาด "ประเภทข้อมูลของค่าอินพุตไม่เข้ากันกับประเภทข้อมูลของ 'String' ออกมาจาก proc "check_data_type_value" สิ่งที่แปลกคือถ้าฉันปล่อยให้สคริปต์ GUI ออกตัวแปรแบบสอบถามนั้นจะใช้ได้ DECLARE @var sql_variant = N'\\myserver\ssisdata' EXEC [catalog].[create_environment_variable] @variable_name = N'FolderBase' , @sensitive = False , @description = N'' , @environment_name = N'Development' , @folder_name = N'POC' , @value = @var , @data_type = N'String' GO อย่างไรก็ตามการใช้วิธีการสคริปต์นี้ไม่ทำงาน legwork ที่ฉันทำบ่งชี้ว่าข้อความแสดงข้อผิดพลาดนี้มักแก้ไขโดยใช้ชนิดข้อมูล nvarchar แทน …

2
การออกแบบฐานข้อมูล SQL Server สำหรับข้อมูล“ เก็บถาวร แต่พร้อมใช้งาน”
เรามีฐานข้อมูลขนาดใหญ่นี้ (> 1TB) ที่เราตั้งใจจะ "ลดขนาด" ฐานข้อมูลหมุนรอบเอนทิตีหลักหนึ่งเรียกว่า "เยี่ยมชม" สำหรับการอภิปรายสมมติว่ามันเป็นฐานข้อมูลสำหรับการปฏิบัติทางการแพทย์ มี "ประเภท" การเข้าชม 30 ครั้งเช่นขั้นตอนรายปีการติดตามการฉีดวัคซีนและอื่น ๆ แต่ละรายการเป็นตารางเงินอุดหนุนสำหรับ "การเยี่ยมชม" เช่น "visit_immuno" ฐานข้อมูลได้สะสมข้อมูล 12 ปีมาตั้งแต่ปี 2000 มีคนเสนอว่าเราเก็บข้อมูลประมาณ 3 ปีในรุ่น "สด" และให้เวลาที่เหลืออยู่ในฐานข้อมูล "old_data" วันที่จะถูกเก็บไว้เฉพาะในตาราง "เยี่ยมชม" เนื่องจากมันถูกทำให้เป็นมาตรฐาน ตารางเยี่ยมชมยังมีROWVERSIONคอลัมน์และคอลัมน์BIGINTหลอก (คลัสเตอร์) สำหรับ intents และวัตถุประสงค์สมมติว่ากุญแจสำคัญในการจัดกลุ่มเป็นประชากรโดยลำดับ (SQL Server 2012 องค์กร) - cidเราจะตั้งชื่อมันว่า คำสั่งvisit.dateนี้ไม่ได้อยู่ในลำดับเดียวกับคีย์การจัดกลุ่มตัวอย่างเช่นเมื่อแพทย์ไปตรวจเยี่ยมเพิ่มเติมและกลับมาพร้อมกับข้อมูล "กระเป๋าเอกสาร" ของเขามันจะถูกรวมเข้าไว้ในตารางหลัก นอกจากนี้ยังมีการปรับปรุงบางอย่างเพื่อ "ไปที่" ตารางที่จะทำให้ROWVERSIONคอลัมน์ที่จะออกจากซิงค์กับทั้งสองcidและdateคอลัมน์ - จะนำมันก็ไม่ROWVERSIONหรือcidจะทำให้คีย์พาร์ทิชันที่เหมาะสมด้วยเหตุผลนี้ …

1
อัปเกรด SQL Server 2005 เป็น SQL Server 2012
ฉันมีการตั้งค่าสภาพแวดล้อมการทดสอบด้วยสิ่งต่อไปนี้: เครื่องเสมือน (Hyper-V) Windows Server 2008 R2 SP1 (x64 บิต) SP4 นักพัฒนา Windows SQL Server 2005 SP4 (x64 บิต) (ชื่ออินสแตนซ์เริ่มต้น) 1 ฐานข้อมูลพร้อมการจำลองแบบผสานตั้งค่า ... 3 สิ่งพิมพ์ที่มีสมาชิก 2 ราย เรากำลังทดสอบขั้นตอนการอัปเกรดเป็น SQL Server 2012 Developer Edition (sp1) ... ฉันดาวน์โหลด iso สำหรับ 64bit SQL Server 2012 Dev (sp1) จาก MSDN (สำเนาลิขสิทธิ์แบบเต็ม) และเริ่มลงเส้นทางการอัพเกรด ในขั้นตอนสุดท้ายที่เริ่มต้นการตรวจสอบเกณฑ์ที่แตกต่างกันเราพบปัญหาที่แปลกประหลาดตามที่อธิบายไว้ด้านล่าง: Rule …


4
SQL Server 2012 กำลังวาง [วงเล็บ] ไว้รอบ ๆ ชื่อตารางและคอลัมน์
เมื่อคุณลากโฟลเดอร์คอลัมน์ไปยังหน้าต่างแก้ไขรายการทั้งหมดของคอลัมน์จะถูกเพิ่มโดยไม่มีวงเล็บ หากคุณลากคอลัมน์ทีละรายการพวกเขามีวงเล็บ อย่างไรก็ตามมีการปิดใช้งานหรือไม่ ฉันไม่สามารถหาอะไรในตัวเลือกและพวกเขาเป็นสิ่งที่ทำให้ไขว้เขว

5
ฉันจะ จำกัด ขั้นตอนการจัดเก็บ SQL ที่จะเรียกใช้ครั้งละหนึ่งคนได้อย่างไร
ฉันมีขั้นตอนการจัดเก็บที่โดยทั่วไปจะเลือกค่าจากตารางหนึ่งและแทรกลงในอีกตารางหนึ่งซึ่งเป็นการจัดเก็บลงสื่อถาวร ฉันต้องการหลีกเลี่ยงคนหลายคนไม่ให้ทำเช่นนั้นในเวลาเดียวกัน ในขณะที่กระบวนการนี้กำลังทำงานอยู่ฉันไม่ต้องการให้คนอื่นเริ่มต้นได้ แต่ฉันไม่ต้องการให้มีการทำให้เป็นอนุกรม สิ่งที่ฉันต้องการสำหรับบุคคลอื่นที่พยายามเริ่มต้นเพื่อรับข้อผิดพลาดในขณะที่ฉันกำลังเรียกใช้กระบวนการ ฉันได้ลองใช้ sp_getapplock แล้ว แต่ฉันไม่สามารถจัดการเพื่อห้ามไม่ให้บุคคลนั้นเรียกใช้โพรซีเดอร์ได้ ฉันพยายามค้นหาโพรซีเดอร์ด้วย sys.dm_exec_requests และบล็อกโพรซีเดอร์ในขณะที่มันใช้งานได้ฉันคิดว่ามันไม่เหมาะสมเพราะในบางเซิร์ฟเวอร์ฉันไม่ได้รับอนุญาตให้เรียกใช้ sys.dm_exec_sql_text (sql_handle) วิธีที่ดีที่สุดสำหรับฉันที่จะทำคืออะไร?

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