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

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

1
บทบาท db_owner อนุญาตอะไร
ฉันพยายามแก้ไขปัญหาการเข้าสู่ระบบที่ไม่สามารถดูตารางบางอย่างในฐานข้อมูล SQL Server 2012 ในการทำเช่นนั้นฉันพบว่าฉันไม่ค่อยเข้าใจในการเป็นสมาชิกในdb_ownerบทบาทที่อนุญาต ฉันสามารถเข้าใจบทบาทอื่น ๆ เช่นdb_datareader and db_datawriterแต่ฉันยังคงสับสนกับสิ่งที่db_ownerอนุญาต

3
สร้าง UNIQUEIDENTIFIER อย่างปลอดภัยใน SQL Server
ฉันตั้งใจจะใช้UNIQUEIDENTIFIERเป็นคีย์การเข้าถึงที่ผู้ใช้สามารถใช้เพื่อเข้าถึงข้อมูลบางอย่าง กุญแจจะทำหน้าที่เป็นรหัสผ่านในแง่นั้น ฉันจำเป็นต้องสร้างตัวระบุหลายตัวเป็นส่วนหนึ่งของINSERT...SELECTคำสั่ง ด้วยเหตุผลทางสถาปัตยกรรมฉันต้องการสร้างตัวระบุฝั่งเซิร์ฟเวอร์ในกรณีนี้ ฉันจะสร้างแบบสุ่มที่ปลอดภัยได้UNIQUEIDENTIFIERอย่างไร โปรดทราบว่าNEWIDจะไม่สามารถสุ่มได้มากพอเนื่องจากไม่ได้รับประกันคุณสมบัติความปลอดภัยใด ๆ เลย ฉันกำลังมองหา SQL Server ที่เทียบเท่ากับSystem.Security.Cryptography.RandomNumberGeneratorเพราะฉันต้องการ ID ที่ไม่สามารถคาดเดาได้ สิ่งใดขึ้นอยู่กับCHECKSUM, RANDหรือGETUTCDATEยังจะได้มีสิทธิ์

1
วิธีการโอนความเป็นเจ้าของ dbo schema ใน SQL Server 2012
ฉันได้ให้สิทธิ์การเป็นเจ้าของ schema db_owner แก่ผู้ใช้โดยไม่ได้ตั้งใจ (โดยใช้ช่องทำเครื่องหมายใน UI ด้านล่าง) และตอนนี้ฉันไม่สามารถ: โอนสิทธิ์การเป็นเจ้าของให้กับผู้ใช้รายอื่น ดร็อปผู้ใช้จาก DB (แม้ว่าฉันสามารถลบล็อกอินใน SQL Server) ฉันลองหลักการฐานข้อมูลเป็นเจ้าของสคีมาในฐานข้อมูลและไม่สามารถลบได้ ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo และในขณะที่เสร็จสมบูรณ์ผู้ใช้ยังคงเป็นเจ้าของและเป็นสีเทาดังนั้นฉันจึงไม่สามารถทำได้ใน UI เช่นกัน พบวิธีแก้ปัญหา: นอกเหนือจากคำตอบของ Arronฉันรู้ว่าฉันเรียกใช้คำสั่งข้างต้นในฐานข้อมูลผิด (facepalm!) เมื่อ DB ได้รับการแก้ไขทั้ง SQL ข้างต้นและคำตอบด้านล่างทำงาน

2
ประสิทธิภาพการแทรกของ SQL Server 2016 เทียบกับ 2012
ฉันมี SQL Server สองอินสแตนซ์บนเซิร์ฟเวอร์เดียวกัน: Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64) รุ่นมาตรฐาน (64 บิต) Microsoft SQL Server 2016 (SP1-CU5) (KB4040714) - 13.0.4451.0 (X64) รุ่นองค์กร (64 บิต) ผลลัพธ์ sp_configure เหมือนกันทั้งสองอินสแตนซ์ (ยกเว้นตัวเลือกใหม่ 2016) ฉันสร้างฐานข้อมูลใหม่บนทั้งสองอินสแตนซ์ในโฟลเดอร์ดิสก์เดียวกัน พารามิเตอร์ Autogrowth เหมือนกัน ตัวเลือกสถิติอัตโนมัติและการอัปเดตอัตโนมัติถูกปิด จากนั้นฉันได้ทำการทดสอบโดยมีใบมีด 10,000 อันเข้าไปในกอง: set nocount on go create table dbo.TestInsert ( i int …

2
ในการค้นหาข้อมูลภายในของ FILESTREAM
เมื่อฟีเจอร์ FILESTREAM เปิดใช้งานบน Microsoft SQL Server 2012 SQL Server จะสร้างการแชร์ "ที่ซ่อนอยู่" บนระบบ การแบ่งปันถูกกำหนดดังนี้: Sharename FILESTREAM_SHARE Path \\?\GLOBALROOT\Device\RsFx0320\<localmachine>\FILESTREAM_SHARE Remark SQL Server FILESTREAM share Maximum users unlimited Users Caching Manual caching of documents Permissions NT-AUTHORITY\Authenticated Users, FULL ชื่อที่เป็นชื่อของหุ้นที่คุณให้เมื่อเริ่มแรกการกำหนดค่า FILESTREAM ในการกำหนดค่าเซิร์ฟเวอร์ SQL ผู้จัดการ แต่มันมีไว้เพื่ออะไร? จนถึงตอนนี้ ฉันอ่านเอกสาร FILESTREAM ทั้งหมดที่มีอยู่เริ่มต้นที่: FILESTREAM (เซิร์ฟเวอร์ SQL) เปิดใช้งานและกำหนดค่า FILESTREAM …

2
ตรรกะเบื้องหลัง ISNUMERIC สำหรับอักขระพิเศษบางตัวคืออะไร
ISNUMERICฟังก์ชั่นที่มีพฤติกรรมที่ไม่คาดคิด เอกสาร MSDN พูดว่า: ISNUMERICส่งคืน 1 เมื่อนิพจน์อินพุตประเมินเป็นชนิดข้อมูลตัวเลขที่ถูกต้อง มิฉะนั้นก็จะส่งกลับ 0. ที่ถูกต้องชนิดข้อมูลที่เป็นตัวเลขรวมต่อไปนี้: int, bigint, smallint, TINYINT, ทศนิยม, ตัวเลข, เงิน, smallmoney ลอยจริง และยังมีเชิงอรรถ: ISNUMERICส่งคืน 1 สำหรับอักขระบางตัวที่ไม่ใช่ตัวเลขเช่นเครื่องหมายบวก (+), ลบ (-) และสัญลักษณ์สกุลเงินที่ถูกต้องเช่นเครื่องหมายดอลลาร์ ($) สำหรับรายการที่สมบูรณ์ของสัญลักษณ์สกุลเงินดูเงินและ smallmoney (Transact SQL) เอาล่ะเพื่อให้+, -และสัญลักษณ์สกุลเงินจดทะเบียนที่คาดว่าจะได้รับการพิจารณาเป็นตัวเลข จนถึงตอนนี้ดีมาก ตอนนี้สำหรับส่วนที่แปลก ก่อนอื่นสัญลักษณ์สกุลเงินบางส่วนจากบทความที่เชื่อมโยงไม่ใช่ตัวเลขรวมไปถึง: เครื่องหมายยูโร - สกุลเงิน hex 20A0: ₠ สัญญาณ Naira, hex 20A6: ₦ Rial sign, …

1
เหตุใดคุณจึงต้องใช้บัญชีบริการที่มีการจัดการแทนที่จะเป็นบัญชีเสมือนใน SQL Server 2012
ใน SQL Server 2012 บัญชีบริการจะถูกสร้างเป็นบัญชีเสมือน (VAs) ตามที่อธิบายไว้ที่นี่ตรงข้ามกับบัญชีบริการที่ได้รับการจัดการ (MSAs) ความแตกต่างที่สำคัญที่ฉันสามารถเห็นได้จากสิ่งเหล่านี้ตามคำอธิบาย: MSAs เป็นบัญชีโดเมน VAs เป็นบัญชีท้องถิ่น MSAs ใช้การจัดการรหัสผ่านอัตโนมัติที่จัดการโดย AD, VAs ไม่มีรหัสผ่าน ในบริบท Kerberos, MSAs ลงทะเบียน SPNs โดยอัตโนมัติ VAs ไม่ มีความแตกต่างอื่น ๆ อีกไหม? ถ้า Kerberos ไม่ได้ใช้งานทำไม DBA ถึงต้องการ MSA อัปเดต : ผู้ใช้รายอื่นได้ระบุถึงความขัดแย้งที่เป็นไปได้ในเอกสาร MS ที่เกี่ยวข้องกับ VAs : บัญชีเสมือนมีการจัดการโดยอัตโนมัติและบัญชีเสมือนสามารถเข้าถึงเครือข่ายในสภาพแวดล้อมของโดเมน กับ บัญชีเสมือนไม่สามารถรับรองความถูกต้องไปยังสถานที่ห่างไกล บัญชีเสมือนทั้งหมดใช้สิทธิ์ของบัญชีเครื่อง <domain_name>\<computer_name>$บทบัญญัติบัญชีเครื่องในรูปแบบ "บัญชีเครื่องจักร" คืออะไร? วิธีการ …

1
วิ่งรวมไปยังแถวก่อนหน้า
ฉันต้องการความช่วยเหลือเกี่ยวกับฟังก์ชั่นหน้าต่าง ฉันรู้ว่าคุณสามารถคำนวณผลรวมภายในหน้าต่างและผลรวมสะสมภายในหน้าต่าง แต่เป็นไปได้หรือไม่ที่จะคำนวณผลรวมการทำงานก่อนหน้าเช่นผลรวมการรันที่ไม่รวมแถวปัจจุบัน ฉันคิดว่าคุณจะต้องใช้ROWหรือRANGEโต้แย้ง ฉันรู้ว่ามีCURRENT ROWตัวเลือก แต่ฉันต้องการCURRENT ROW - 1ซึ่งเป็นไวยากรณ์ที่ไม่ถูกต้อง ความรู้ROWและRANGEข้อโต้แย้งของฉันมี จำกัด ดังนั้นความช่วยเหลือใด ๆ จะได้รับสุดซึ้ง ฉันรู้ว่ามีหลายโซลูชั่นในการแก้ไขปัญหานี้ แต่ฉันกำลังมองหาที่จะเข้าใจROW, RANGEข้อโต้แย้งและผมถือว่าปัญหาสามารถแตกกับสิ่งเหล่านี้ ฉันได้รวมวิธีที่เป็นไปได้หนึ่งวิธีไว้เพื่อคำนวณผลรวมการวิ่งก่อนหน้า แต่ฉันสงสัยว่ามีวิธีที่ดีกว่านี้หรือไม่: USE AdventureWorks2012 SELECT s.SalesOrderID , s.SalesOrderDetailID , s.OrderQty , SUM(s.OrderQty) OVER (PARTITION BY SalesOrderID) AS RunningTotal , SUM(s.OrderQty) OVER (PARTITION BY SalesOrderID ORDER BY SalesOrderDetailID) - s.OrderQty AS PreviousRunningTotal -- …

1
การแก้ไขปัญหา SOS_SCHEDULER_YIELD รอ
ใช้ ERP ในองค์กรของเรา (Dynamics AX 2012) ฉันสังเกตว่าสภาพแวดล้อมการผลิตของเรานั้นช้ากว่าระบบการพัฒนาของเรามาก หลังจากทำกิจกรรมเดียวกันทั้งในสภาพแวดล้อมการพัฒนาและการใช้งานจริงในขณะทำการสืบค้นกลับฉันยืนยันว่าข้อความค้นหา SQL กำลังทำงานช้ามากในสภาพแวดล้อมการผลิตของเราเมื่อเทียบกับการพัฒนา (เฉลี่ย 10-50x ช้ากว่า) ตอนแรกฉันอ้างว่าสิ่งนี้เพื่อโหลดและเรียกใช้กิจกรรมเดียวกันอีกครั้งในสภาพแวดล้อมการผลิตในช่วงนอกเวลาทำงานและพบผลลัพธ์เดียวกันในการติดตาม ฉันล้างสถิติการรอของฉันใน SQL Server แล้วปล่อยให้เซิร์ฟเวอร์ทำงานภายใต้ปริมาณการผลิตตามปกติชั่วครู่หนึ่งจากนั้นเรียกใช้แบบสอบถามนี้: WITH [Waits] AS (SELECT [wait_type], [wait_time_ms] / 1000.0 AS [WaitS], ([wait_time_ms] - [signal_wait_time_ms]) / 1000.0 AS [ResourceS], [signal_wait_time_ms] / 1000.0 AS [SignalS], [waiting_tasks_count] AS [WaitCount], 100.0 * [wait_time_ms] / SUM ([wait_time_ms]) OVER() …

1
บังคับให้สปูลดัชนี
ฉันรู้ว่าบางสิ่งบางอย่างที่ควรหลีกเลี่ยงด้วยเหตุผลด้านประสิทธิภาพ แต่ฉันกำลังพยายามแสดงสภาพที่มันปรากฏเป็นตัวอย่างในการทำให้แน่ใจว่ามันจะไม่ปรากฏขึ้น อย่างไรก็ตามฉันท้ายด้วยคำเตือนดัชนีที่ขาดหายไป แต่เครื่องมือเพิ่มประสิทธิภาพเลือกที่จะไม่สร้างดัชนีชั่วคราว แบบสอบถามที่ฉันใช้คือ SELECT z.a FROM dbo.t5 AS z WITH(INDEX(0)) WHERE EXISTS ( SELECT y.a FROM dbo.t4 AS y WHERE y.a = z.a ) OPTION (MAXDOP 1); แผนผังตารางคือ: CREATE TABLE dbo.t4 ( a integer NULL, b varchar(1000) NULL, p varchar(100) NULL ); CREATE TABLE dbo.t5 ( a integer …

3
ฉันสามารถเชื่อมต่อกับอินสแตนซ์ SQL Server 2000 จาก SQL Server Management Studio 2012 ได้หรือไม่
ฉันต้องการอัปเดตเครื่องพัฒนาเป็น SQL Server 2012 แต่ฉันยังคงจัดการกับเครื่อง SQL Server 2000 (เก่ามาก) บางเครื่อง SSMS 2012 ของฉันสามารถเชื่อมต่อกับเครื่อง SQL Server 2000 ได้ไหม SQL Server 2008 R2 ทำงานได้ดี (สิ่งที่ฉันมีตอนนี้)

3
แบบสอบถาม SQL Server ช้าเมื่อแบ่งหน้า
ฉันเห็นพฤติกรรมแปลก ๆ ด้วยแบบสอบถาม T-SQL ต่อไปนี้ใน SQL Server 2012: SELECT Id FROM dbo.Person WHERE CONTAINS(Name, '"John" AND "Smith"') ORDER BY Name การดำเนินการค้นหานี้เพียงอย่างเดียวทำให้ฉันมีผลลัพธ์ประมาณ 1,300 รายการในเวลาน้อยกว่าสองวินาที (มีดัชนี fulltext เปิดอยู่Name) อย่างไรก็ตามเมื่อฉันเปลี่ยนแบบสอบถามเป็น: SELECT Id FROM dbo.Person WHERE CONTAINS(Name, '"John" AND "Smith"') ORDER BY Name OFFSET 0 rows FETCH NEXT 10 ROWS ONLY ใช้เวลามากกว่า 20 วินาทีในการให้ผลลัพธ์ …

1
เปรียบเทียบแบบสอบถามที่สองใน SQL Server 2012
ฉันกำลังเปรียบเทียบแบบสอบถามที่สองใน SQL Server 2012 เป้าหมายคือการใช้ข้อมูลที่เกี่ยวข้องทั้งหมดที่มีอยู่จากเครื่องมือเพิ่มประสิทธิภาพแบบสอบถามเมื่อเลือกแบบสอบถามที่ดีที่สุด ข้อความค้นหาทั้งสองรายการให้ผลลัพธ์ที่เหมือนกัน ลำดับสูงสุดสำหรับลูกค้าทั้งหมด การล้างบัฟเฟอร์พูลเสร็จก่อนดำเนินการค้นหาด้วย FREEPROCCACHE และ DROPCLEANBUFFERS ใช้ข้อมูลที่ให้ไว้ด้านล่างแบบสอบถามใดเป็นตัวเลือกที่ดีกว่า -- Query 1 - return the maximum order id for a customer SELECT orderid, custid FROM Sales.Orders AS O1 WHERE orderid = (SELECT MAX(O2.orderid) FROM Sales.Orders AS O2 WHERE O2.custid = O1.custid); -- Query 2 - return the …

2
เปอร์เซ็นต์ค่าใช้จ่ายใน SQL Server นี้วางแผนมากกว่า 100% ด้วยเหตุผลที่ถูกต้องหรือไม่?
ฉันกำลังมองผ่านแคชแผนมองหาผลไม้เพิ่มประสิทธิภาพที่แขวนต่ำและพบกับตัวอย่างนี้: ทำไมต้นทุนหลายรายการที่แสดงไว้สูงกว่า 100% ไม่ควรที่จะเป็นไปไม่ได้?

1
ย้ายคีย์หลักไปยังกลุ่มไฟล์ (SQL Server 2012)
ฉันจะย้ายคีย์หลักแบบคลัสเตอร์ไปยังกลุ่มไฟล์ใหม่ได้อย่างไร ฉันได้พบ "อัลกอริทึม" ที่เป็นไปได้แล้ว แต่มันไม่มีประสิทธิภาพอย่างน่ากลัว: วางดัชนีที่ไม่ได้ทำคลัสเตอร์ (ต้องการให้สร้างใหม่และสร้างใหม่) ดร็อปดัชนีแบบคลัสเตอร์ (ต้องใช้ทั้งตารางเพื่อนำไปใช้) สร้างข้อ จำกัด คีย์หลักใหม่ (การดำเนินการเรียงลำดับขนาดใหญ่) สร้างดัชนีที่ไม่ทำคลัสเตอร์ทั้งหมด (จำเป็นต้องมีการเรียงลำดับและการเขียน) มีวิธีที่มีประสิทธิภาพมากกว่านี้ไหม? สิ่งนี้ไม่มีประสิทธิภาพอย่างน่ากลัวและใช้เวลานานเนื่องจากตารางมีขนาด 50GB บนเซิร์ฟเวอร์ที่อ่อนแอ ไม่มีวิธีที่จะข้ามสิ่งเหล่านี้ทั้งหมดและสร้างใหม่ในกลุ่มไฟล์ใหม่หรือไม่ ที่จะไม่ต้องเรียงลำดับข้อมูลใด ๆ

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