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

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

2
การปรับแผนให้เหมาะสมด้วยตัวอ่าน XML
ดำเนินการค้นหาจากที่นี่เพื่อดึงเหตุการณ์ deadlock ออกจากเซสชันเพิ่มเติมของเหตุการณ์ที่ขยายเริ่มต้น SELECT CAST ( REPLACE ( REPLACE ( XEventData.XEvent.value ('(data/value)[1]', 'varchar(max)'), '<victim-list>', '<deadlock><victim-list>'), '<process-list>', '</victim-list><process-list>') AS XML) AS DeadlockGraph FROM (SELECT CAST (target_data AS XML) AS TargetData FROM sys.dm_xe_session_targets st JOIN sys.dm_xe_sessions s ON s.address = st.event_session_address WHERE [name] = 'system_health') AS Data CROSS APPLY TargetData.nodes ('//RingBufferTarget/event') AS …

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

1
ประสิทธิภาพที่แปลกประหลาดมากกับดัชนี XML
คำถามของฉันเป็นไปตามนี้: https://stackoverflow.com/q/35575990/5089204 เพื่อให้คำตอบนั้นฉันได้ทำการทดสอบสถานการณ์ต่อไปนี้ สถานการณ์การทดสอบ ก่อนอื่นฉันจะสร้างตารางทดสอบและเติมเต็ม 100.000 แถว ตัวเลขสุ่ม (0 ถึง 1,000) ควรนำไปสู่ ​​~ 100 แถวสำหรับแต่ละหมายเลขสุ่ม หมายเลขนี้ถูกใส่ในคอลัมน์ varchar และเป็นค่าใน XML ของคุณ จากนั้นฉันจะโทรเช่น OP มีความต้องการด้วย. exist () และ. nodes () โดยมีข้อได้เปรียบเล็กน้อยสำหรับวินาที แต่ทั้งคู่ใช้เวลา 5 ถึง 6 วินาที ในความเป็นจริงฉันทำการโทรสองครั้ง: ครั้งที่สองในลำดับที่สลับกันและเปลี่ยนการค้นหาเล็กน้อยและใช้ "// item" แทนพา ธ เต็มเพื่อหลีกเลี่ยงผลบวกปลอมผ่านผลลัพธ์หรือแผนแคช จากนั้นฉันจะสร้างดัชนี XML และทำการโทรเดียวกัน ตอนนี้ - อะไรทำให้ฉันประหลาดใจจริงๆ! - the .nodeswith …

2
เหตุใดข้อผิดพลาดการสืบค้นที่ตั้งค่าผลลัพธ์ว่างใน SQL Server 2012
เมื่อเรียกใช้แบบสอบถามต่อไปนี้ใน MS SQL Server 2012 แบบสอบถามที่สองล้มเหลว แต่ไม่ใช่แบบสอบถามแรก นอกจากนี้เมื่อเรียกใช้โดยไม่มีส่วนคำสั่งทั้งสองข้อจะล้มเหลว ฉันแพ้ทำไมทั้งสองล้มเหลวเนื่องจากทั้งคู่ควรมีชุดผลลัพธ์ว่างเปล่า ความช่วยเหลือ / ความเข้าใจใด ๆ ที่มีความนิยม create table #temp (id int primary key) create table #temp2 (id int) select 1/0 from #temp where id = 1 select 1/0 from #temp2 where id = 1

3
ฐานข้อมูลหนึ่งต่อไคลเอนต์กลายเป็นจุดที่ไม่สามารถทำได้?
สำหรับหนึ่งในระบบของเราเรามีข้อมูลลูกค้าที่ละเอียดอ่อนและจัดเก็บข้อมูลลูกค้าแต่ละรายในฐานข้อมูลแยกต่างหาก เรามีลูกค้าประมาณ 10-15 คนสำหรับระบบนั้น อย่างไรก็ตามเรากำลังพัฒนาระบบใหม่ที่จะมีลูกค้า 50-100 รายอาจจะมากกว่านี้ ฉันคิดว่ามันอาจเป็นไปไม่ได้ที่จะมีฐานข้อมูลเดียวต่อลูกค้าในตัวอย่างนี้ (เพื่อเก็บบันทึกที่ละเอียดอ่อนและประวัติการตรวจสอบ) อย่างไรก็ตามฉันไม่รู้ว่านี่เป็นเรื่องปกติอย่างสมบูรณ์หรือไม่หรือหากมีวิธีอื่นในการรักษาความปลอดภัย ความคิดใด ๆ เกี่ยวกับเรื่องนี้?

1
จะถอนการติดตั้ง SQL Server Management Studio 2012 ได้อย่างไร [ปิด]
จะถอนการติดตั้ง SQL Server Management Studio 2012 ได้อย่างไร ControlPanel ของ "ถอนการติดตั้งหรือเปลี่ยนโปรแกรม" (ใน Windows 7 Prof) ให้รายการต่างๆ: ในขณะที่ผลการค้นหาอินเทอร์เน็ตบอกเสมอ : "คลิก Microsoft SQL Server 2005 แล้วคลิกเปลี่ยน" UPDATE (แสดงความคิดเห็นคำตอบของ Shawn Melton ): เมื่อเลือก "" Microsoft SQL Server 2012 (64 บิต) "-> ถอนการติดตั้ง / เปลี่ยนแปลงฉันสังเกต: และหลังจากเลือก "ลบ", "กฎการสนับสนุนการตั้งค่า" โดยไม่มีตัวเลือก SSMS หรือความต่อเนื่อง:

3
วิธีการกำหนดค่าสำหรับการประเมินขนาดบัฟเฟอร์พูลที่เหมาะสมคืออะไร?
ฉันกำลังพยายามหาวิธีที่ชาญฉลาดเพื่อทำความเข้าใจว่าการmax server memory (mb)ตั้งค่านั้นเหมาะสมหรือไม่ (ควรจะต่ำกว่าหรือสูงกว่าหรืออยู่ในแนวทางที่เหมาะสม) ฉันรู้ว่าmax server memory (mb)ควรจะต่ำพอที่จะออกจากห้องสำหรับระบบปฏิบัติการตัวเอง ฯลฯ สภาพแวดล้อมที่ฉันกำลังมองหามีเซิร์ฟเวอร์หลายร้อยเครื่อง ฉันต้องการสูตรที่เชื่อถือได้ฉันสามารถใช้เพื่อตรวจสอบว่าขนาดปัจจุบันของบัฟเฟอร์พูลนั้นเหมาะสมหรือไม่เนื่องจาก RAM คิดต้นทุนต่อ GB ที่จัดสรรให้กับเซิร์ฟเวอร์แต่ละเครื่อง สภาพแวดล้อมทั้งหมดถูกจำลองเสมือนและ RAM "ทางกายภาพ" ที่จัดสรรให้กับ VM สามารถเปลี่ยนแปลงได้ง่ายขึ้นหรือลง ฉันมีอินสแตนซ์ของเซิร์ฟเวอร์ SQL ที่เฉพาะเจาะจงฉันกำลังดูด้วย PLE ที่ 1,100,052 วินาทีซึ่งเท่ากับ 12.7 วัน (ระยะเวลาที่เซิร์ฟเวอร์ใช้งาน) เซิร์ฟเวอร์มีการตั้งค่าหน่วยความจำสูงสุดของเซิร์ฟเวอร์ที่ 2560MB (2.5GB) ซึ่งมีการกำหนดเพียง 1380MB (1.3GB) เท่านั้น ฉันได้อ่านหลายรายการรวมถึงหนึ่งโดย Jonathan Keheyias ( โพสต์ ) และอีกรายการโดย Paul Randal ( โพสต์ …

19
SQL Server Management Studio เปิดหน้าต่างใหม่ช้า
หลังจากอัปเกรดทั้ง SQL Server และ Management Studio จาก 2008 เป็น 2012 Management Studio 2012 จะช้ามากเมื่อเปิดหน้าต่างแบบสอบถามและกล่องโต้ตอบใหม่ แม้แต่การคลิกขวาที่ตารางก็ช้า โดยทั่วไปจะมีความล่าช้าอย่างน้อย 5 วินาทีก่อนที่ฉันจะเริ่มทำอะไรก็ได้ภายในหน้าต่าง สิ่งนี้เกิดขึ้นทุกครั้งแม้ว่าฉันจะเปิดหน้าต่างเดียวกันสองครั้งติดต่อกัน ทำไมสิ่งนี้ถึงเกิดขึ้นและฉันจะแก้ไขได้อย่างไร แอปพลิเคชั่นอื่น ๆ สร้างการเชื่อมต่อกับฐานข้อมูลอย่างรวดเร็ว สิ่งที่ฉันลองซึ่งไม่ได้ช่วย: Hit บน Google ที่ฉันต้องการแก้ไขhostsไฟล์ของฉัน การรีเซ็ต SSMS "การตั้งค่าที่ผู้ใช้กำหนด" การอัปเดตไดรเวอร์วิดีโอปิดการเร่งด้วยฮาร์ดแวร์ปิดการใช้งาน DirectX ปิดใช้งานบริการการรับรองความถูกต้องทางชีวภาพ (ฉันไม่ได้ติดตั้ง) คอมพิวเตอร์ของฉันควรจะเร็วเกินพอและฉันยังมี RAM 16GB ฮาร์ดแวร์ของฉันไม่ควรเป็นปัญหา ดูเหมือนว่า SSMS กำลังรอบางสิ่งอยู่ฉันสามารถใช้งานโปรแกรมอื่นได้อย่างราบรื่นในขณะที่สิ่งนี้กำลังเกิดขึ้น ฉันไม่มีโอกาสติดตั้งการอัปเดต SQL Server 2012 CU1 เนื่องจากดูเหมือนว่ามีความเสี่ยงของข้อผิดพลาดในการติดตั้งโปรแกรมแก้ไขด่วนและฉันไม่สามารถเสี่ยงได้ในขณะนี้

2
กระบวนการบล็อกว่างเปล่าในรายงานกระบวนการที่ถูกบล็อก
ฉันรวบรวมรายงานกระบวนการที่ถูกบล็อกโดยใช้เหตุการณ์เพิ่มเติมและด้วยเหตุผลบางประการในรายงานบางอันblocking-processโหนดนั้นว่างเปล่า นี่คือ xml แบบเต็ม: <blocked-process-report monitorLoop="383674"> <blocked-process> <process id="processa7bd5b868" taskpriority="0" logused="106108620" waitresource="KEY: 6:72057613454278656 (8a2f7bc2cd41)" waittime="25343" ownerId="1051989016" transactionname="user_transaction" lasttranstarted="2017-03-20T09:30:38.657" XDES="0x21f382d9c8" lockMode="X" schedulerid="7" kpid="15316" status="suspended" spid="252" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2017-03-20T09:39:15.853" lastbatchcompleted="2017-03-20T09:39:15.850" lastattention="1900-01-01T00:00:00.850" clientapp="Microsoft Dynamics AX" hostname="***" hostpid="1348" loginname="***" isolationlevel="read committed (2)" xactid="1051989016" currentdb="6" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056"> <executionStack> <frame line="1" stmtstart="40" sqlhandle="0x02000000f7def225b0edaecd8744b453ce09bdcff9b291f50000000000000000000000000000000000000000" …

4
ตรวจสอบว่ามีผู้ใช้อยู่ในฐานข้อมูล SQL Server หรือไม่
ฉันทำงานกับ SQL Server 2012 ฉันต้องการตรวจสอบว่ามีผู้ใช้อยู่ก่อนที่จะเพิ่มลงในฐานข้อมูลหรือไม่ นี่คือสิ่งที่ฉันได้ทดสอบ: USE [MyDatabase] GO IF NOT EXISTS (SELECT name FROM [sys].[server_principals] WHERE name = N'IIS APPPOOL\MyWebApi AppPool') Begin CREATE USER [IIS APPPOOL\MyWebApi AppPool] FOR LOGIN [IIS APPPOOL\MyWebApi AppPool] WITH DEFAULT_SCHEMA=[dbo] end ALTER ROLE [db_owner] ADD MEMBER [IIS APPPOOL\MyWebApi AppPool] GO แต่รหัสนี้จะไม่กลับมาหากผู้ใช้ที่มีอยู่ในSELECT name FROM [sys].[server_principals]MyDatabase ฉันจะตรวจสอบว่ามีผู้ใช้อยู่ในได้MyDatabaseอย่างไร?

4
การคัดลอกตาราง (หลายร้อย) จากเซิร์ฟเวอร์หนึ่งไปยังอีก (ด้วย SSMS)
ฉันมีตารางหลายร้อย (ปัจจุบัน 466 แต่เคยเติบโต) ตารางฉันต้องคัดลอกจากเซิร์ฟเวอร์หนึ่งไปยังอีก ฉันไม่เคยทำแบบนี้มาก่อนดังนั้นฉันไม่แน่ใจเลยว่าจะเข้าใกล้มันอย่างไร ตารางทั้งหมดอยู่ในรูปแบบเดียวกัน:Cart<Eight character customer number> นี่เป็นส่วนหนึ่งของโครงการขนาดใหญ่ที่ฉันรวมCart<Number>ตารางเหล่านี้ทั้งหมดเข้ากับตารางเดียวCartsแต่นั่นเป็นคำถามที่แตกต่างกันโดยสิ้นเชิง ใครบ้างมีวิธีปฏิบัติที่ดีที่สุดที่ฉันสามารถใช้เพื่อคัดลอกตารางเหล่านี้ทั้งหมดหรือไม่ ชื่อฐานข้อมูลบนเซิร์ฟเวอร์ทั้งสองจะเหมือนกันหากเป็นเช่นนั้น และอย่างที่ฉันบอกไว้ก่อนหน้านี้ฉันมีsaบัญชีเพื่อให้ฉันสามารถทำสิ่งที่จำเป็นเพื่อรับข้อมูลจาก A ถึง B เซิร์ฟเวอร์ทั้งสองอยู่ในเซิร์ฟเวอร์ฟาร์มเดียวกันเช่นกัน

6
วิธีดูมุมมองที่เข้ารหัสหรือกระบวนงานที่เก็บไว้
ฉันกำลังทำงานกับฐานข้อมูลบุคคลที่สาม เมื่อฉันพยายามที่จะดูคำจำกัดความของมุมมองโดยการคลิกขวาCREATE TOจากนั้นNEW QUERY EDIT WINDOWฉันก็จะได้รับข้อผิดพลาด: คุณสมบัตินี้อาจไม่มีอยู่สำหรับวัตถุนี้หรืออาจไม่สามารถเรียกคืนได้เนื่องจากสิทธิ์การเข้าถึงไม่เพียงพอ ข้อความถูกเข้ารหัส

2
วิธีที่เร็วที่สุดในการแทรกแถวจำนวนมากคืออะไร?
ฉันมีฐานข้อมูลที่ฉันโหลดไฟล์ลงในตารางการแสดงละครจากตารางการแสดงนี้ฉันมี 1-2 ร่วมเพื่อแก้ไขคีย์ต่างประเทศแล้วใส่แถวนี้ลงในตารางสุดท้าย (ซึ่งมีหนึ่งพาร์ติชันต่อเดือน) ฉันมีข้อมูลประมาณ 3.4 พันล้านแถวสำหรับสามเดือน วิธีที่เร็วที่สุดในการดึงแถวเหล่านี้จากการจัดเตรียมลงในตารางสุดท้ายคืออะไร SSIS Data Flow Task (ที่ใช้มุมมองเป็นแหล่งที่มาและมีการโหลดที่ใช้งานอย่างรวดเร็ว) หรือคำสั่งแทรกลงใน SELECT ... ฉันลอง Data Flow Task และสามารถรับประมาณ 1 พันล้านแถวในเวลาประมาณ 5 ชั่วโมง (8 cores / 192 GB RAM บนเซิร์ฟเวอร์) ซึ่งรู้สึกช้ามากสำหรับฉัน

1
เหตุใดข้อความค้นหาทำให้เกิดการรั่วไหลของ tempdb
พื้นหลัง ฉันอยู่ในขั้นตอนการย้ายฐานข้อมูล 160GB จาก MSSQL 2008 (มาตรฐาน) บนเซิร์ฟเวอร์ Win 2008 ที่มี 48gb RAM ไปยังเซิร์ฟเวอร์ใหม่ที่ใช้ MSSQL 2012 (รุ่นเว็บ 64 บิต) ใน Win 2012 ด้วย 64GB ของ RAM เซิร์ฟเวอร์เก่าใช้งานได้และอยู่ระหว่างการโหลด เซิร์ฟเวอร์ใหม่ไม่ได้ใช้งานจริง เซิร์ฟเวอร์ใหม่มีไฟล์ 8 tempdb (แต่ละไฟล์ 4GB) ปัญหา ในการทดสอบบนเซิร์ฟเวอร์ใหม่ฉันเห็นขั้นตอนในการสอบถามจำนวนมากทำให้เกิดการแจ้งเตือนถึง "ผู้ดำเนินการใช้ tempdb เพื่อทำข้อมูลหกระหว่างการดำเนินการ" ฉันสามารถหลีกเลี่ยงการเรียงลำดับได้โดยเขียนคำค้นหาบางคำใหม่ แต่นี่ไม่ได้เป็นการแก้ปัญหาจริงๆ แบบสอบถามเดียวกันบนเซิร์ฟเวอร์เก่าไม่ทำให้เกิดการรั่วไหล ฉันได้อ่านว่าการรั่วไหลเกิดขึ้นเมื่อ MSSQL ไม่สามารถดำเนินการในหน่วยความจำจนเสร็จและต้องมีการหก / หน้าลงใน tempdb ฉันควรจะกังวลเกี่ยวกับการหกหรือไม่ ตัวอย่าง ฉันรัน …

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

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