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

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

1
วิธีรับประวัติการสืบค้นที่ดำเนินการโดยใช้ชื่อผู้ใช้ใน SQL
ฉันสามารถเรียกใช้คิวรีได้โดยใช้: SELECT deqs.last_execution_time AS [Time] ,dest.TEXT AS [Query] FROM sys.dm_exec_query_stats AS deqs CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest ORDER BY deqs.last_execution_time DESC แต่ฉันกำลังมองหาusernameคอลัมน์ที่ดำเนินการค้นหาเหล่านี้ด้วย


6
ความพยายามดึงหน้าโลจิคัล (5: 65424) ในฐานข้อมูล 2 ล้มเหลว
ฉันได้รับข้อมูลต่อไปนี้SqlExceptionในการเรียกขั้นตอนที่เก็บไว้: ความพยายามดึงหน้าโลจิคัล (5: 65424) ในฐานข้อมูล 2 ล้มเหลว มันเป็นของหน่วยการจัดสรร 7349876362857938944 ไม่เป็น 4899918190390149120 System.Data.SqlClient.SqlException เกิดขึ้น Message = "ความพยายามดึงหน้าโลจิคัล (5: 65424) ในฐานข้อมูล 2 ล้มเหลวมันเป็นของหน่วยการจัดสรร 7349876362857938944 ไม่ใช่ 4899918190390149120 ที่มา = "ผู้ให้บริการข้อมูล SqlClient สุทธิ" ErrorCode = -2146232060 คลาส = 21 LineNumber = 257 จำนวน = 605 ขั้นตอน = "ispDisplayCount" เซิร์ฟเวอร์ = "10.10.1.1" สถานะ = 3 …

5
สิทธิ์ของผู้ใช้สับสนขึ้นหลังจากการสำรองข้อมูล -> การดำเนินการคืนค่า
ฉันต้องย้ายฐานข้อมูล SQL Server 2008 หลายตัวไปยังเซิร์ฟเวอร์ db ใหม่ของเราดังนั้นฉันจึงสำรองข้อมูลทั้งหมด (เป็นไฟล์. bak) คัดลอกไฟล์เหล่านี้ไปยังกล่องใหม่และเรียกคืนพวกเขา (ทั้งหมดทำได้โดยใช้ SQL Management Studio) ทุกอย่างก็โอเค แต่ตอนนี้ฉันพบว่าฉันไม่สามารถลงชื่อเข้าใช้ฐานข้อมูลใด ๆ โดยใช้บัญชี SQL Server ที่ยังคงทำงานบน RDBMS เก่าได้ การเข้าสู่ระบบที่ได้รับการรับรองความถูกต้องของ windows ของฉันยังคงทำงานได้ดี ฉันมีความคิดนี้ผู้ใช้และสิทธิ์ทั้งหมดจะถูกทำซ้ำอย่างราบรื่นบนเซิร์ฟเวอร์ฐานข้อมูลใหม่ แต่ดูเหมือนว่ามีบางอย่างผิดปกติ ฉันขอขอบคุณความเห็น / ข้อเสนอแนะ / ข้อเสนอการช่วยเหลือ ;-)

1
ทำไม suser_name () ไม่แสดงการเปลี่ยนแปลงชื่อบัญชีโฆษณา?
ชื่อผู้ใช้ของเรามีการเปลี่ยนแปลงอย่างถูกต้องตามกฎหมายดังนั้นเราจึงเปลี่ยนชื่อผู้ใช้ Active Directory ให้ตรงกัน - จาก domain \ oldname เป็น domain \ newname อย่างไรก็ตามเมื่อ suser_sname () ถูกเรียกโดยผู้ใช้รายนี้ในขั้นตอนการจัดเก็บมันจะส่งคืนชื่อเก่าไม่ใช่ชื่อใหม่ Googling ทำให้ฉันไปที่KB 946358ซึ่งแนะนำว่าชื่อของพวกเขาถูกแคชบนเซิร์ฟเวอร์และไม่ได้อัปเดตน่าจะเป็นเพราะ suser_name () กำลังเรียก LsaLookupSids อย่างไรก็ตามการแก้ปัญหาในบทความนั้นเกี่ยวข้องกับการรีสตาร์ทเซิร์ฟเวอร์และแม้ว่าฉันจะยังคงต้องการที่จะเข้าใจปัญหา หากฉันเปลี่ยนบริบทเป็นชื่อที่ถูกต้องจะกลับมา: EXECUTE AS LOGIN = 'domain\newname' GO SELECT suser_name() --returns 'domain\newname' ... ฉันจะสันนิษฐานว่าสิ่งนี้จะเรียก LsaLookupSids และจะส่งคืนชื่อที่ไม่ถูกต้อง ดูเหมือนว่าฉันจะไม่เข้าใจกลไกการทำงานที่นี่จริงๆ ข้อสังเกตบางอย่างที่อาจสำคัญ: ผู้ใช้รายนี้ไม่มีการเข้าสู่ระบบที่ชัดเจนบนเซิร์ฟเวอร์ แต่พวกเขาเป็นสมาชิกของกลุ่มโฆษณาที่ทำ ชื่อที่เปลี่ยนแปลง (โดเมน \ newname) จะปรากฏในชุดผลลัพธ์สำหรับexec xp_logininfo …

2
สามารถกำหนดค่า / ใช้ sp_executesql เป็นค่าเริ่มต้นได้หรือไม่
ฉันกำลังดูแอปพลิเคชันที่ใช้การสืบค้น SQL แบบไดนามิกสูงกับ SQL Server ดูคำถามที่สร้างขึ้นด้วยวิธีที่แปลกและซับซ้อนมาก แต่นั่นเป็นเรื่องที่แตกต่างฉันบอกให้เหตุผลที่ดีสำหรับฉันที่ไม่สามารถ (โง่เกินไป) เพื่อค้นหาสิ่งต่าง ๆ ด้วยตัวเอง ... ฉันมองไม่เห็น รหัสใด ๆ sp_executesqlที่คำสั่งจะถูกห่อด้วย sp_executesqlแต่เมื่อผมติดตามฉันสามารถดูจำนวนมากของคำสั่งที่มาในห่อด้วย โซลูชันแอปพลิเคชันทั้งหมดไม่มีแม้แต่คำสั่งsp_executesqlเลย ดังนั้นฉันสงสัยว่ามีการกำหนดค่าชนิดใดที่ฉันยังไม่รู้ซึ่งบังคับให้ซอฟต์แวร์ตัดคำสั่งด้วย sp_executesql โดยค่าเริ่มต้นหรือไม่ สิ่งที่อาจทำให้เกิดพฤติกรรมนี้

2
ELSE 0 บอกเป็นนัยในกรณี COUNT ของฉันเมื่อใด
ความแตกต่างระหว่างCOUNT(CASE WHEN [Column A] = ____ THEN 1 END และCOUNT(CASE WHEN [Column A] = ____ THEN 1 ELSE 0 ENDคืออะไร? ฉันใช้อดีตและฉันไม่ได้เห็นความแตกต่างในตอนนี้ เหตุผลในการเพิ่มELSE 0- มีสถานการณ์ที่ SQL Server จะนับอย่างไม่ถูกต้องหรือไม่

2
เหตุใดการรอคอยของ async_network_io จึงเป็นประเภท
สัปดาห์ที่แล้วมีสิ่งผิดปกติเกิดขึ้นในฐานข้อมูลของเรา ทั้งหมดในทันทีแอปพลิเคชันที่ถูกบล็อกสำหรับผู้ใช้ของเราที่ไม่สามารถบันทึกเอนทิตีใหม่ ฯลฯ หลังจากดูการตรวจสอบกิจกรรมของ SQL Server (2008 ด้วยโหมดความเข้ากันได้ 2005) ฉันเห็นสามรายการต่อไปนี้: หลังจากระยะเวลาหนึ่งผู้ใช้จะได้รับการหมดเวลาเชื่อมต่อ เมื่อฉันฆ่ากระบวนการ 64 พวกเขาสามารถบันทึกได้ตามปกติอีกครั้ง ปัญหาคือเอนทิตีที่พวกเขาพยายามบันทึกระหว่างบล็อกถูกแทรกลงในฐานข้อมูลมากกว่าหนึ่งครั้ง (สูงสุด 3 ครั้ง) แม้ว่าจะมีรหัสที่ควรป้องกันไม่ให้เกิดขึ้น (คอลัมน์หมายเลขที่ต้องไม่ซ้ำกัน แต่ไม่มีข้อ จำกัด ) ... การตรวจสอบเกิดขึ้นในรหัส) เราใช้ Entity Framework 6.0 มีใครบ้างที่รู้ว่าทำไมและเมื่อ ASYNC_NETWORK_IO รอประเภทเกิดขึ้นและจะหลีกเลี่ยงได้อย่างไร และพวกเขาหมายถึงอะไรกันแน่?

6
ประมาณการการเติบโตของฐานข้อมูลที่คาดการณ์ไว้
ฉันเพิ่งเริ่มทำงานกับ SQL Server 2008 ในฐานะผู้ฝึกหัด DBA ฉันต้องการคำนวณขนาดของฐานข้อมูล แต่ยังประเมินการเติบโตในช่วงหลายเดือนที่ผ่านมาและการเติบโตที่คาดการณ์ไว้ในอีก 12 เดือนข้างหน้า ฉันสามารถใช้คำสั่ง sp_spaceused เพื่อคำนวณขนาดจริง แต่ฉันจะคำนวณทุกอย่างได้อย่างไร

1
ผงชูรส 666 เมื่อเรียกใช้แบบสอบถามแทรกในตารางดัชนี 80M แถว
น่าแปลกที่กระบวนการจัดเก็บของฉันเริ่มได้รับข่าวสารเกี่ยวกับ 666 สำหรับข้อมูลอินพุตบางส่วน กระบวนงานที่เก็บไว้ล้มเหลวในขั้นตอนสุดท้ายเมื่อพยายามแทรกแถวลงในตารางด้วยโครงสร้างต่อไปนี้: Columns: A_Id: PK, int B_Id: PK, FK, int C_Id: PK, FK, int D_Id: PK, smallint นี่คือตารางที่เชื่อมโยงเอนทิตีที่อ้างอิงทั้งหมดเข้าด้วยกัน Indexes: IX_TableName_D_id - Clustered index on D_id column PK_TableName - Unique non-clustered index on all columns (A_Id, B_Id, C_Id, D_Id) การกระจายตัวของดัชนีทั้งสองอยู่ในระดับต่ำ (<25%) อย่างไรก็ตามการแตกแฟรกเมนต์ PK_TableName เติบโตอย่างรวดเร็วเนื่องจากจำนวนการดำเนินการบนตารางค่อนข้างรุนแรง ขนาดโต๊ะ: Row count: ~80,000,000 rows …

5
แบบสอบถามโดยไม่ต้องระบุสคีมาของตาราง
ฉันนำเข้าตารางจาก SQL Server 2000 ไปยังฐานข้อมูล 2008 ของฉัน erpadmin.tablenameทุกตารางที่นำเข้าจะมีคำนำหน้าชื่อผู้ใช้ของฉันเช่น: ในคุณสมบัติตารางจะแสดงรายการ 'erpadmin' เป็น db schema เมื่อฉันเขียนแบบสอบถามตอนนี้ฉันต้องรวม 'erpadmin' ต่อหน้าชื่อตารางทั้งหมดซึ่งทำให้เกิดความสับสน ผลลัพธ์ปัจจุบัน: select * from erpadmin.tablename ผลลัพธ์ที่ต้องการ: select * from tablename

5
การติดตั้ง SQL Server RAID 10 กับ RAID 5
ฉันใหม่เพื่อตั้งค่าเซิร์ฟเวอร์ SQL และ Vms บรรพบุรุษของฉันใช้ Raid 5 สำหรับ C Drive ซึ่งมีการติดตั้ง SQL และ RAID 10 สำหรับไฟล์ฐานข้อมูลและบันทึกฐานข้อมูล ฉันสงสัยว่ามันถูกต้องหรือควรใช้ RAID 5 สำหรับไฟล์ฐานข้อมูล SQL แทนหรือไม่ ความช่วยเหลือใด ๆ

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

1
การกำหนดค่าแพ็คเกจ SSIS 2008 ถูกละเว้น
ด้วยการเปลี่ยนแปลงการกำหนดค่าแพคเกจในปี 2008 เทียบกับปี 2005 เมื่อฉันระบุ / ConfigFile something.dtsConfig บนบรรทัดคำสั่งตัวแปรที่กำหนดในแพ็คเกจจะเก็บค่าเวลาการออกแบบแทนการใช้การตั้งค่าจากไฟล์กำหนดค่า ฉันค่อนข้างแน่ใจว่าฉันเข้าใจวิธีการใช้ไฟล์ปรับแต่งภายนอกเพื่อใช้งานได้เลย ฉันได้อ่านบทความที่บอกว่ามีเพียงการกำหนดค่าในขณะออกแบบเท่านั้นที่จะเขียนทับการโหลดไฟล์ภายนอก นี่หมายความว่าฉันสามารถเปลี่ยนตัวแปรเป็นสตริงว่างได้แล้วพวกมันจะถูกเขียนทับหรือไม่? ฉันไม่สามารถลบตัวแปรอย่างสมบูรณ์! แล้วจำนวนเต็มล่ะ? ฉันเคยเห็นบทความที่กล่าวถึงการปิดโดยใช้การกำหนดค่าแพคเกจในแพคเกจ ฉันสามารถใช้ SSIS Package Editor หรือตัวแก้ไข XML เพื่อเปลี่ยนพา ธ ของไฟล์การกำหนดค่าในแพ็คเกจและจากนั้นจะใช้การตั้งค่าของไฟล์นั้น "ครั้งสุดท้าย" (โดยไม่คำนึงถึงตัวเลือกภายนอก / ConfigFile) แต่ฉันไม่ต้องการ การเปลี่ยนแพ็คเกจ ฉันต้องการแพ็คเกจหนึ่งที่มี Test.dtsConfig และ Production.dtsConfig และสามารถสลับไปมาได้โดยไม่ต้องเปลี่ยนแพคเกจ อะไรคือวิธีที่แนะนำให้ทำตอนนี้?

2
การบำรุงรักษาบันทึกธุรกรรมบนฐานข้อมูลมิเรอร์
เวอร์ชันของเซิร์ฟเวอร์ SQL: 2008 R2 Enterprise SP2 ฉันพยายามจัดการกับการบำรุงรักษา SQL Server ของเราและฉันเจอสิ่งที่ฉันคิดว่าไม่ถูกต้อง เรามีอินสแตนซ์การผลิตเดียวซึ่งมี 3 ฐานข้อมูลแต่ละอันถูกมิเรอร์นอกสถานที่ไปยังอินสแตนซ์ DR ในขณะที่ดูอินสแตนซ์ DR ฉันสังเกตเห็นว่าไฟล์ LDF มีขนาดใหญ่มากเกินกว่า 35GB สำหรับฐานข้อมูลที่ใช้งานหนัก ฉันเข้าใจว่าอาจเป็นเพราะฐานข้อมูลมิเรอร์อยู่ในโหมดการกู้คืนแบบเต็มและบันทึกไม่เคยถูกสำรองไว้พวกเขาจะเติบโตต่อไปจนกว่าจะหมดพื้นที่ไดรฟ์ เรากำลังทำการสำรองข้อมูลบันทึกในฐานข้อมูลหลักและคำถามของฉันคือสิ่งที่ gotchas กับการทำสำรองข้อมูลบันทึกในกระจกหรือไม่ ต้องมีการสำรองข้อมูลเต็มรูปแบบอย่างน้อยหนึ่งรายการจากมิเรอร์ก่อนที่จะทำการสำรองข้อมูลบันทึกในกรณีนั้นมีตัวเลือกพิเศษที่จำเป็นต้องใช้เพราะเป็นมิรเรอร์หรือไม่ นี่คือคำแนะนำในการบำรุงรักษาบันทึกธุรกรรมบนฐานข้อมูลMIRROR ขอบคุณสำหรับการป้อนข้อมูลใด ๆ

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