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

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

3
วิธีการเชื่อมต่อครั้งเดียวสำหรับแบบสอบถามทั้งหมดใน SQL Server Management Studio?
SSMS ขอให้ฉันเชื่อมต่อทุกแบบสอบถามในโครงการของฉัน มีวิธีการเชื่อมต่อเพียงครั้งเดียวต่อการเชื่อมต่อสำหรับแบบสอบถามทั้งหมดที่ใช้ในโครงการของฉันหรือไม่ คำตอบด้านล่าง (มีนาคม 2014) ไม่ตอบคำถาม ยังคงมองหาวิธีการแก้ปัญหา

1
วิธีเพิ่มประสิทธิภาพการค้นหา
ฉันมีโครงสร้างฐานข้อมูลคล้ายกับสิ่งนี้ CREATE TABLE [dbo].[Dispatch]( [DispatchId] [int] NOT NULL, [ContractId] [int] NOT NULL, [DispatchDescription] [nvarchar](50) NOT NULL, CONSTRAINT [PK_Dispatch] PRIMARY KEY CLUSTERED ( [DispatchId] ASC, [ContractId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO CREATE TABLE …

1
OPTION FORCE ORDER ปรับปรุงประสิทธิภาพจนกว่าแถวจะถูกลบ
ฉันมีแบบสอบถาม SQL Server 2008 ที่ค่อนข้างซับซ้อน (ประมาณ 200 บรรทัดของ SQL ที่มีความหนาแน่นพอสมควร) ซึ่งไม่ทำงานตามที่ฉันต้องการ เมื่อเวลาผ่านไปประสิทธิภาพจะลดลงจากประมาณ 0.5 วินาทีเป็นประมาณ 2 วินาที ดูที่แผนการดำเนินการมันค่อนข้างชัดเจนว่าการเรียงลำดับตัวเชื่อมใหม่จะทำให้ประสิทธิภาพดีขึ้น ฉันทำและมันลงไปถึงประมาณ 3 วินาที ตอนนี้แบบสอบถามมีคำแนะนำ "คำสั่งตัวเลือกการบังคับ"และชีวิตเป็นสิ่งที่ดี ตามมาด้วยฉันวันนี้ล้างฐานข้อมูล ฉันเก็บประมาณ 20% ของแถวที่จะดำเนินการในฐานข้อมูลที่เกี่ยวข้องอื่นใดนอกจากการลบแถว ... แผนปฏิบัติการที่ได้รับการทยอย มันผิดทั้งหมดจำนวนแถวย่อยบางอย่างจะกลับมาและ (ตัวอย่าง) แทนที่ a: <Hash> กับ <NestedLoops Optimized='false' WithUnorderedPrefetch='true'> ในขณะนี้เวลาของแบบสอบถามเริ่มจากประมาณ. 3 ถึงประมาณ 18 วินาที (!) เพียงเพราะฉันลบแถว หากฉันลบคำใบ้คำค้นหาฉันกลับไปใช้เวลาสอบถามข้อมูลประมาณ 2 วินาที ดีกว่า แต่แย่กว่านั้น ฉันได้ทำซ้ำปัญหาหลังจากกู้คืนฐานข้อมูลไปยังสถานที่และเซิร์ฟเวอร์หลายแห่ง …

1
การเข้าสู่ระบบล้มเหลวสำหรับผู้ใช้ 'NT AUTHORITY \ ANONYMOUS เข้าสู่ระบบ' (MsDtsSrvr)
ฉันมีสภาพแวดล้อมแบบคลัสเตอร์ซึ่งมีอินสแตนซ์จำนวนมากอยู่ในนั้น ฉันได้แก้ไขไฟล์ xml เพื่ออนุญาตให้หลาย ๆ อินสแตนซ์ใช้ ssis ทุกอย่างทำงานได้ดีเมื่ออินสแตนซ์อยู่บนโหนดเดียวกันกับ ssis ที่ทำคลัสเตอร์ อย่างไรก็ตามหากพวกเขาอยู่ในโหนดที่แตกต่างกันดูเหมือนว่าจะมีปัญหาการตรวจสอบและสูญเสียข้อมูลประจำตัวของฉัน ด้วยเหตุผลบางอย่างมันพยายามใช้การเข้าสู่ระบบแบบไม่ระบุชื่อแทน นี่คือข้อผิดพลาดแบบเต็ม: เซิร์ฟเวอร์ SQL ที่ระบุในการกำหนดค่าบริการ SSIS ไม่มีอยู่หรือไม่พร้อมใช้งาน สิ่งนี้อาจเกิดขึ้นเมื่อไม่มีอินสแตนซ์เริ่มต้นของ SQL Server บนคอมพิวเตอร์ สำหรับข้อมูลเพิ่มเติมดูหัวข้อ "การกำหนดค่าบริการการรวมบริการ" ใน Server 2005 Books Online การเข้าสู่ระบบล้มเหลวสำหรับผู้ใช้ 'NT AUTHORITY \ ANONYMOUS เข้าสู่ระบบ' (MsDtsSrvr) ฉันขอขอบคุณทุกคนที่ช่วยในปัญหานี้ ขอบคุณ

2
อะไรคือความแตกต่างระหว่าง SQL I / O Sim และเครื่องมือ SQL IO?
ฉันต้องการทดสอบทางเลือกอื่นของ SQL Server ด้วยเครื่องมือเปรียบเทียบ ฉันพบเครื่องมือสองอย่างโดย Microsoft: เครื่องมือมาตรฐานระบบย่อยของดิสก์ SQLIO SQL IO Sim ความแตกต่างระหว่างพวกเขาคืออะไร? มันเป็นสิ่งเดียวกันหรือไม่ ขอบคุณ!

1
sp_execute ต้องการพารามิเตอร์ '@handle' ของประเภท 'int'
ฉันพยายามตรวจสอบขั้นตอนการจัดเก็บหากมีตารางอยู่ในฐานข้อมูลปลายทางของฉัน หากไม่เป็นเช่นนั้นฉันจะสร้างตารางโดยใช้ตาราง data_schema จากฐานข้อมูลต้นทาง อย่างไรก็ตามเมื่อฉันใช้ sp_execute เพื่อพยายามนำกลับมาหากตารางมีอยู่ฉันได้รับข้อผิดพลาดขั้นตอนคาดว่าพารามิเตอร์ '@handle' ของประเภท 'int' ฉันไม่ได้ใช้พารามิเตอร์ @handle มีคนบอกฉันว่าข้อผิดพลาดนี้มีความหมายอย่างไรและทำไมฉันถึงได้รับ ส่วนที่เกี่ยวข้องของรหัสของฉันอยู่ด้านล่าง DECLARE @SQL NVARCHAR(MAX), @Parameters NVARCHAR(4000), @TableNotExists INT, @SourceTable NVARCHAR(200), @DestDB NVARCHAR(200) BEGIN SET @SourceTable = 'table' SET @DestDB = 'database' SET @Parameters = N'@SourceTableIN NVARCHAR(200), @TableNotExistsOut INT OUTPUT' SET @SQL = N'USE [' + @DestDB + …

1
การหมดเวลางานของ SQL Server
ดังนั้นดูเหมือนว่าเป็นไปไม่ได้ที่จะตั้งค่าการหมดเวลาสำหรับแต่ละขั้นตอนเดียวในงาน SQL Server ( บทความจาก StackExchange ) MSDN ชี้ให้เห็นว่าคุณสามารถกำหนด Agent หมดเวลาได้แน่นอน: คุณสมบัติตัวแทนของเซิร์ฟเวอร์ SQL ปิดการดำเนินงานชุด คำถาม การหมดเวลาของ Agent ทำงานอย่างไร มีวิธีอื่น (โดยเฉพาะการกำหนดค่า) เพื่อตั้งค่าการหมดเวลาขั้นตอนเดียวหรือไม่ มีวิธีอื่น (โดยเฉพาะการกำหนดค่า) เพื่อตั้งค่าการหมดเวลางานทั้งหมดหรือไม่

2
คำสั่ง 'สร้างฐานข้อมูล' ของ SQL Server วิธีสืบทอดการตั้งค่า autogrowth เป็นอย่างไร
ฉันใช้ SQL Server 2008 R2 และสร้างฐานข้อมูลผ่านการปรับใช้อย่างต่อเนื่อง ในระบบของเราการตั้งค่า autogrowth 1Mb / 10% เริ่มต้นใน SQL Server ทำงานได้ไม่ดีกับข้อมูลของเรา โดยเฉพาะอย่างยิ่งเมื่อเรามีแอปพลิเคชันรุ่นเก่าที่ป้องกันไม่ให้เราเปลี่ยนสคีมามาก เราต้องการให้การตั้งค่าฐานข้อมูลถูกกำหนดค่าในระดับอินสแตนซ์เพื่อให้เราสามารถเปลี่ยนแปลงการปรับใช้แบบฉากได้ ฉันได้อ่านในหลาย ๆ ที่ที่การตั้งค่าเริ่มต้นสำหรับฐานข้อมูลใหม่นั้นขึ้นอยู่กับการตั้งค่าสำหรับ 'model' แต่ดูเหมือนว่าจะทำงานได้โดยคลิกฐานข้อมูลใหม่ใน SQL Management studio UI และไม่ได้มาจากสคริปต์เช่น CREATE DATABASE [MyDb] msdn.microsoft.com/en-us/library/ms186388(v=sql.105).aspx sqlservercentral.com/Forums/Topic1065073-391-1.aspx /programming/8828557/possible-to-configure-database-autogrowth-settings-at-the-instance-level/8828604#comment15586568_8828604 มีใครที่จะได้รับสิ่งนี้เพื่อทำงานกับสคริปต์สร้างหรือไม่? มีวิธีอื่นที่ฉันสามารถตั้งค่า autogrowth ต่อหนึ่งเซิร์ฟเวอร์ได้หรือไม่

3
SQL Server 2012 Standard Edition - อินสแตนซ์หลายตัวและการใช้หน่วยความจำ
หากเรามี SQL Server 2012 Standard Edition หลายอินสแตนซ์ (ซึ่งมีขีด จำกัด หน่วยความจำ 64 GB) บนเซิร์ฟเวอร์หนึ่งซึ่งมี RAM 192 GB ให้ทำทั้งสองกรณีให้เข้าถึงหน่วยความจำ 64 GB แรกเท่านั้นหรือสามารถเข้าถึงที่แตกต่างกันได้ ส่วนของหน่วยความจำเพื่อให้แต่ละคนสามารถมี "ก้อน" 64 GB ของตัวเอง นี่คือการพิจารณาสำหรับกลุ่ม Active / Active หากทั้งสองโหนดล้มเหลวไปที่โหนดเดียว

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

2
ประสิทธิภาพช้าแทรกแถวน้อยลงในตารางขนาดใหญ่
เรามีกระบวนการที่ใช้ข้อมูลจากร้านค้าและอัปเดตตารางสินค้าคงคลังทั่วทั้ง บริษัท ตารางนี้มีแถวสำหรับทุกร้านค้าตามวันที่และตามรายการ ที่ลูกค้าที่มีร้านค้ามากมายตารางนี้จะมีขนาดใหญ่มาก - ตามลำดับ 500 ล้านแถว โดยทั่วไปกระบวนการอัปเดตคลังโฆษณานี้จะเรียกใช้หลายครั้งต่อวันเนื่องจากร้านค้าป้อนข้อมูล สิ่งเหล่านี้เรียกใช้การอัพเดทข้อมูลจากร้านค้าเพียงไม่กี่แห่ง อย่างไรก็ตามลูกค้าสามารถเรียกใช้สิ่งนี้เพื่ออัปเดต, พูดว่า, ร้านค้าทั้งหมดใน 30 วันที่ผ่านมา ในกรณีนี้กระบวนการหมุน 10 เธรดและอัปเดตคลังเก็บของแต่ละร้านในเธรดแยกต่างหาก ลูกค้าร้องเรียนว่ากระบวนการใช้เวลานาน ฉันได้ทำโพรเซสและพบว่ามีหนึ่งแบบสอบถามที่ INSERT ในตารางนี้ใช้เวลานานกว่าที่คาดไว้ บางครั้ง INSERT นี้จะเสร็จสมบูรณ์ใน 30 วินาที เมื่อฉันรันคำสั่ง ad-hoc SQL INSERT กับตารางนี้ (ล้อมรอบด้วย BEGIN TRAN และ ROLLBACK), ad-hoc SQL จะทำงานให้เสร็จสมบูรณ์ตามลำดับมิลลิวินาที ข้อความค้นหาที่ทำงานช้าอยู่ด้านล่าง แนวคิดคือการบันทึก INSERT ที่ไม่ได้อยู่ที่นั่นและภายหลังเพื่อปรับปรุงพวกเขาในขณะที่เราคำนวณบิตของข้อมูล ขั้นตอนก่อนหน้าในกระบวนการระบุรายการที่จำเป็นต้องได้รับการปรับปรุงทำการคำนวณบางอย่างและยัดผลลัพธ์ลงในตาราง tempdb Update_Item_Work กระบวนการนี้ทำงานใน 10 เธรดแยกกันและแต่ละเธรดมี …

2
SQL Server เลือกคีย์ดัชนีสำหรับการอ้างอิงคีย์ต่างประเทศอย่างไร
ฉันทำงานกับฐานข้อมูลดั้งเดิมที่นำเข้าจาก MS Access มีตารางประมาณยี่สิบตารางที่มีคีย์หลักที่ไม่ซ้ำกันและไม่ซ้ำกันซึ่งสร้างขึ้นในระหว่างการเข้าถึง MS> SQL Server อัพเกรด ตารางเหล่านี้จำนวนมากยังมีดัชนีที่ไม่ซ้ำกันและไม่ทำคลัสเตอร์ซึ่งซ้ำกันของคีย์หลัก ฉันพยายามทำความสะอาด แต่สิ่งที่ฉันได้พบคือหลังจากที่ฉันสร้างคีย์หลักใหม่เป็นดัชนีคลัสเตอร์จากนั้นพยายามสร้างคีย์ต่างประเทศคีย์ต่างประเทศคือการอ้างอิงดัชนีเก่าที่ซ้ำกัน (ซึ่งไม่ซ้ำกัน) ฉันรู้สิ่งนี้เพราะมันจะไม่ให้ฉันปล่อยดัชนีที่ซ้ำกัน ฉันคิดว่า SQL Server จะเลือกคีย์หลักเสมอหากมีอยู่ SQL Server มีวิธีเลือกระหว่างดัชนีที่ไม่ซ้ำกันและคีย์หลักหรือไม่ ในการทำซ้ำปัญหา (บน SQL Server 2008 R2): IF EXISTS (SELECT * FROM sys.tables WHERE name = 'Child') DROP TABLE Child GO IF EXISTS (SELECT * FROM sys.tables WHERE name = 'Parent') …

2
SQL Server ประเมินฟังก์ชันหนึ่งครั้งสำหรับทุกแถวหรือไม่
ฉันมีคำถามเช่นนี้ SELECT col1 FROM MyTable WHERE DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) BETWEEN col2 AND col3 ; สิ่งนี้จะให้คำแนะนำเครื่องมือในแผนการดำเนินการที่คล้ายกับสิ่งนี้: ที่ไม่dateaddเป็นส่วนหนึ่งของการแสวงหาภาคได้รับการดำเนินการสำหรับแถวในแบบสอบถามทุกครั้งหรือไม่ หรือ SQL Server คำนวณค่าหนึ่งครั้งสำหรับแบบสอบถามทั้งหมดหรือไม่

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

5
ดำเนินการตามขั้นตอนการจัดเก็บโดยอัตโนมัติหลังจากเหตุการณ์ฐานข้อมูลเรียกคืนใด ๆ
เป็นไปได้หรือไม่ที่จะให้SQL Server 2008 R2 Standardดำเนินการขั้นตอนการจัดเก็บโดยอัตโนมัติในฐานข้อมูลใดก็ตามที่มีการคืนค่าหรือเชื่อมต่อกับอินสแตนซ์ ฉันเข้าใกล้โซลูชันด้วยการสร้างทริกเกอร์ระดับเซิร์ฟเวอร์ที่ดำเนินการขั้นตอนการจัดเก็บในฐานข้อมูลที่กำหนดหลังจากเหตุการณ์ DDL CREATE_DATABASEหรือALTER_DATABASEถูกเรียกใช้ น่าเสียดายที่วิธีนี้ใช้ไม่ได้กับการสำรองข้อมูล databack ในการทำอย่างละเอียดเรามีขั้นตอนการจัดเก็บ 'ล้างข้อมูล' ที่มีอยู่ในทุกฐานข้อมูลที่เรากู้คืนและฉันกำลังมองหาวิธีที่จะดำเนินการนี้โดยอัตโนมัติเมื่อใดก็ตามที่การสำรองข้อมูลถูกเรียกคืนไปยังอินสแตนซ์ Googling ได้ชี้ให้ฉันกำหนดค่าการตรวจสอบหรือนโยบายใน SQL Server เพื่อรับฟังก์ชั่นนี้ แต่ฟีเจอร์เหล่านี้ค่อนข้างล้นหลามในตอนแรกดังนั้นฉันไม่สามารถบอกได้ว่า Audits หรือ Polices เป็นถนนที่เริ่มสืบสวน

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