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

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

2
ปิดใช้งานการตรวจสอบ Schema On Function / Stored Procedure
ฉันพยายามทำให้กระบวนการที่ดำเนินการเปลี่ยนแปลงกับฐานข้อมูล SQL Server 2008 R2 เป็นไปโดยอัตโนมัติ กระบวนการที่ฉันวางไว้และสร้างโพรซีเดอร์และฟังก์ชันที่เก็บไว้ของฉันใหม่รวมถึงเรียกใช้สคริปต์เพื่อเปลี่ยนตาราง / คอลัมน์ / ข้อมูล น่าเสียดายที่สคริปต์ตัวใดตัวหนึ่งต้องใช้ฟังก์ชันใดฟังก์ชันหนึ่งก่อน แต่ฉันไม่สามารถเรียกใช้การเปลี่ยนแปลง proc / ฟังก์ชั่นที่เก็บไว้ได้ทั้งหมดเพราะมันอาศัยคอลัมน์ที่เพิ่มเข้ามาจากสคริปต์การเปลี่ยนแปลงตาราง / คอลัมน์ / ข้อมูลก่อน ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะเรียกใช้โพรซีเดอร์และฟังก์ชันที่เก็บไว้โดยไม่มี SQL Server ตรวจสอบคอลัมน์ที่ใช้ในการกำหนดฟังก์ชัน / SP? ฉันพยายามค้นหา แต่ไม่พบเงื่อนไขหรือคำสั่งเพื่อเปิดใช้งานสิ่งนี้

1
จะขยายปริมาณออกในกล่อง SQL Server ได้อย่างไร
นี่คือคำถามสำหรับ sys เลือกที่นั่น (หรือผู้ที่เคยผ่านประสบการณ์นี้มาก่อน) บริษัท ของฉันต้องการจัดสรรพื้นที่ดิสก์เพิ่มเติมในกล่อง SQL Server ที่มีอยู่ในการผลิต เรากำลังสงสัยว่าการขยายไดรฟ์ข้อมูล ("ขยายระดับเสียง ... " ในการจัดการดิสก์) สามารถทำได้ออนไลน์หรือไม่หรือบริการ SQL Server นั้นจำเป็นต้องปิดตัวลงหรือไม่ เหตุผลใดที่บริการเซิร์ฟเวอร์ SQL ควรหยุดทำเช่นนี้หรือไม่ก็เป็นเพียงการดำเนินการนี้ในระหว่างวัน? ในกรณีที่รายละเอียดของระบบมีความเกี่ยวข้อง นี่คือกล่องจริง (ไม่มีการจำลองเสมือน) ที่ใช้ Windows 2012 R2 และ SQL Server 2008 R2 ขอบคุณ!

4
อ้างสิทธิ์พื้นที่ดิสก์หลังจากลบเขตข้อมูลตาราง
ฉันใช้ sql 2008 r2 และ db นั้นทำงานได้ดีและรวดเร็วในช่วง 3 ปีที่ผ่านมาจนถึงประมาณ 3 เดือนที่ผ่านมาเราได้เพิ่มเขตข้อมูล ntext ในตารางที่ใช้งานและใช้งานมาก ตอนนี้เรากำลังเริ่มที่จะออกจากพื้นที่เซิร์ฟเวอร์เนื่องจากขนาดที่ใหญ่ขึ้นของตารางนี้ ฉันอ่านว่าการลดขนาดเราไม่ต้องการทำให้ดัชนีของฐานข้อมูลหลวมเพราะมันทำงานได้อย่างรวดเร็วเป็นเวลาหลายปีและเราไม่ต้องการที่จะได้รับการกระจายตัวของข้อมูล เราตัดสินใจลบฟิลด์นั้นและค่าทั้งหมด: มีวิธีลบฟิลด์ ntext และค่าทั้งหมดและพื้นที่ปล่อยโดยไม่ต้องลบการทำดัชนีโดยไม่ลดขนาดโดยไม่ลดขนาดประสิทธิภาพ db หรือไม่ ฉันกำลังแนบเอาต์พุตคิวรีขนาด db เพื่อแสดงการขยายขนาดของคุณใน 5 เดือนที่ผ่านมา

6
วิธีการแก้ไขข้อผิดพลาด“ บัญชีที่ระบุมีอยู่แล้ว” ระหว่างการติดตั้ง SQL Server 2008 R2
ฉันเพิ่งมีปัญหาขณะติดตั้ง Visual Studio 2012 และ SQL Server 2008 R2 บนเครื่องพัฒนาใหม่ ลำดับการติดตั้งของฉันคือ Visual Studio 2012 จากนั้นติดตั้ง SQL Server 2008 R2 เกิดข้อผิดพลาดระหว่างการติดตั้ง SQL Server ตรงกลาง: บัญชีที่ระบุมีอยู่แล้ว ฉันใช้เวลาทั้งวันพยายามแก้ไขปัญหานี้

2
Latin1_General_BIN ส่งผลกระทบต่อประสิทธิภาพเมื่อเปลี่ยนการเปรียบเทียบค่าเริ่มต้นของฐานข้อมูล
ฉันได้ตั้งค่าการเปรียบเทียบฐานข้อมูลเป็นLatin1_General_BINเพื่อทำการเปรียบเทียบสตริงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ สิ่งนี้จะส่งผลกระทบต่อประสิทธิภาพหรือไม่ มันจะมีผลกระทบกับการดำเนินงาน DML หรือ DDL ในฐานข้อมูลหรือไม่ ฐานข้อมูลมีอยู่แล้วในตาราง

4
ข้อผิดพลาดของ SQL Server 2008 R2: 15023 ผู้ใช้กลุ่มหรือบทบาทมีอยู่แล้ว
ฉันมีฐานข้อมูลทดสอบที่ฉันมีปัญหาเกี่ยวกับการอนุญาต ฉันไม่สามารถเข้าถึงฐานข้อมูลการรายงานและเอกสารความช่วยเหลือของแอปพลิเคชันบอกว่าต้องทำสิ่งต่อไปนี้: Resolution: 1. Launch the SQL Server Management Studio and connect to the database server(s) hosting the Vision and Reporting Server databases. 2. Expand the security folder. 3. Select logins and right click on the <username> user and choose properties. 4. Click the User Mapping tab 5.Make sure the …

1
SQL Server nvarchar (สูงสุด) vs nvarchar (n) มีผลต่อประสิทธิภาพ
นี่คือ SQL Server 2008 R2 SP2 ฉันมี 2 ตาราง ทั้งสองมีความเหมือนกัน (ข้อมูลและการจัดทำดัชนี) ยกเว้นตารางแรกมีคอลัมน์ VALUE เป็นและครั้งที่สองมีคอลัมน์เดียวกับnvarchar(max) nvarchar(800)คอลัมน์นี้รวมอยู่ในดัชนีที่ไม่ทำคลัสเตอร์ ฉันยังสร้างดัชนีคลัสเตอร์บนตารางทั้งสอง ฉันได้สร้างดัชนีอีกครั้ง ความยาวสตริงสูงสุดในคอลัมน์นี้คือ 650 ถ้าฉันเรียกใช้แบบสอบถามเดียวกันกับทั้งสองnvarchar(800)ตารางจะเร็วขึ้นอย่างต่อเนื่องหลาย ๆ ครั้งเร็วเป็นสองเท่า แน่นอนว่าดูเหมือนจะเอาชนะวัตถุประสงค์ของ "varchar" ตารางประกอบด้วย 800,000+ แถว แบบสอบถามควรดูประมาณ 110,000 แถว (ซึ่งเป็นสิ่งที่แผนประมาณการ) ตามสถิติของ io จะไม่มีลูกเทนนิสอ่านดังนั้นทุกอย่างดูเหมือนจะอยู่ในแถว แผนการดำเนินการเหมือนกันยกเว้นมีความแตกต่างเล็กน้อยในเปอร์เซ็นต์ต้นทุนระหว่างสองตารางและขนาดแถวโดยประมาณนั้นใหญ่กว่าด้วยnvarchar(max)(91 ไบต์เทียบกับ 63 ไบต์) จำนวนการอ่านก็ค่อนข้างเหมือนกัน ทำไมถึงแตกต่าง ===== Schema ====== CREATE TABLE [dbo].[table1]( [ID] [bigint] IDENTITY(1,1) NOT …

3
มีประโยชน์ใด ๆ ในการจัดเรียงข้อมูลดัชนี SQL ในสภาพแวดล้อม SAN หรือไม่?
เซิร์ฟเวอร์ SQL ของเราใช้งาน SAN มันมีฐานข้อมูล OLTP หลายสิบบางตัวมีหลายตารางที่มีมากกว่า 1m บันทึก เรารันสคริปต์บำรุงรักษาดัชนีของ Ola Hallengrenทุกสัปดาห์และทำงานเป็นเวลาหลายชั่วโมงในแต่ละครั้ง ขึ้นอยู่กับเกณฑ์การกระจายตัวของสคริปต์จะจัดระเบียบใหม่หรือดัชนีดัชนีใหม่ เราสังเกตว่าในระหว่างการทำดัชนีใหม่ไฟล์บันทึกจะมีขนาดใหญ่ซึ่งนำไปสู่การสิ้นเปลืองแบนด์วิธที่มากเกินไปในระหว่างการจัดส่งบันทึก จากนั้นบทความจาก Brent Ozar ซึ่งเขาบอกว่าจะหยุดกังวลเกี่ยวกับดัชนี SQL : ฮาร์ดไดรฟ์ของคุณแชร์กับเซิร์ฟเวอร์อื่น ๆ ที่กำลังส่งคำขอไดรฟ์ในเวลาเดียวกันดังนั้นไดรฟ์จะกระโดดไปทั่วเพื่อรับข้อมูล การดีแฟรกดัชนีของคุณเป็นงานยุ่งที่ไร้ความหมาย Googling คำถามนี้นำไปสู่ความคิดเห็นที่แตกต่างกันส่วนใหญ่สนับสนุนด้วยการขัดแย้งที่ดูเหมือนสั้นหรืออ่อนแอเกินไป แผนเบื้องต้นของเราคือการปรับเปลี่ยนเกณฑ์การแตกแฟรกเมนต์ในสคริปต์การบำรุงรักษาของเราเพื่อให้การจัดระเบียบใหม่บ่อยกว่าการจัดทำดัชนีใหม่ คำตัดสินสุดท้ายคืออะไร? มันคุ้มค่าหรือไม่ที่จะจัดเรียงดัชนี SQL บน SAN โดยพิจารณาภาระที่เกี่ยวข้องกับการรันงานบำรุงรักษารายสัปดาห์

2
SQL Server - วิธีปฏิบัติที่ดีที่สุดสำหรับการเติบโตของไฟล์ฐานข้อมูล
ฉันเฝ้าสังเกตการเติบโตของไฟล์ผ่านตัวรวบรวมข้อมูลใน sql server 2008 r2 เป็นเวลาสองสัปดาห์ ฐานข้อมูลมีการเติบโตอย่างต่อเนื่องที่ประมาณ 35 (MB) / วัน ฐานข้อมูลยังไม่ถึงขนาดเริ่มต้นที่ 2 GB การเติบโตอัตโนมัติของไฟล์ฐานข้อมูลถูกตั้งไว้ที่ 5MB และฉันต้องการลองวิธีอื่นดังนั้นฉันจึงกำลังมองหาคำแนะนำและหรือความคิดเห็น มีงานปรับแต่งที่ทำงานทุกสัปดาห์ในคืนวันอาทิตย์เวลา 1:30 น. ภารกิจจะ: ตรวจสอบความสมบูรณ์ของฐานข้อมูล ย่อขนาดแฟ้มบันทึก - (ไม่เป็นไรเนื่องจากโหมดการบันทึกเป็นแบบง่าย) ลดขนาดฐานข้อมูล จัดระเบียบดัชนีใหม่ สร้างดัชนีใหม่ อัปเดตสถิติ ล้างประวัติ ฉันต้องการเพิ่มอีกสองขั้นตอนในแผนการปรับรายสัปดาห์: ขยายไฟล์ฐานข้อมูลขึ้น 500 MB หากพื้นที่ที่ใช้จนถึงขีด จำกัด หรือขนาดทั้งหมด ขยายไฟล์บันทึกเพิ่มขึ้น 250 MB (หลังการย่อขนาด) หากพื้นที่ที่ใช้จนถึงขีด จำกัด ขนาดทั้งหมด ด้วยการวางภาระการเติบโตในเวลาออฟไลน์ฉันหวังว่าจะได้รับประสิทธิภาพโดยการลดจำนวนกิจกรรมการเติบโตอัตโนมัติในช่วงที่มีงานหนัก ฉันมีคำถามสองข้อเกี่ยวกับไฟล์ที่กำลังเติบโตอัตโนมัติ สถานที่ที่ดีที่สุดที่จะนำขั้นตอนการเติบโตของไฟล์มาไว้ก่อนหน้าขั้นตอนปัจจุบันหรือหลังจากนั้น หากฉันใช้ALTER DATABASE|MODIFY FILEเพื่อขยายไฟล์ฉันจะทราบได้SpaceUsedInFile …

2
SQL Server 2008 - ดัชนีการแบ่งพาร์ติชันและคลัสเตอร์
ดังนั้นให้ฉันนำหน้าด้วยการบอกว่าฉันไม่สามารถควบคุมการออกแบบฐานข้อมูลของฉันได้ทั้งหมดดังนั้นแง่มุมมากมายของระบบปัจจุบันจึงไม่สามารถเปลี่ยนแปลงได้ตามวัตถุประสงค์ของสถานการณ์นี้ ความคิดเห็นเกี่ยวกับวิธีที่เราคิดใหม่แง่มุมของการออกแบบน่าจะถูกต้อง แต่ไม่ช่วยเหลือ :) ฉันมีตารางที่มีขนาดใหญ่มากกว้างประมาณ 150 ฟิลด์และแถวประมาณ 600 ม. ซึ่งขับเคลื่อนกระบวนการจำนวนมาก นี่คือสถานการณ์ในคลังข้อมูลดังนั้นเราจึงไม่มีการอัปเดต / แทรกใด ๆ นอกกระบวนการโหลดตามกำหนดเวลาดังนั้นจึงมีการจัดทำดัชนีอย่างหนัก มีการตัดสินใจที่จะลองแบ่งพาร์ติชันตารางนี้และฉันมีความกังวลเกี่ยวกับการทำดัชนีตารางที่แบ่งพาร์ติชัน ฉันไม่มีประสบการณ์ในการแบ่งพาร์ติชันดังนั้นอินพุตหรือลิงก์ใด ๆ ที่ชื่นชม ฉันไม่สามารถค้นหาสิ่งที่ฉันเป็นบน BOL หรือ msdn โดยเฉพาะได้ ขณะนี้เราจัดกลุ่มในฟิลด์ที่เราจะเรียกIncidentKeyซึ่งเป็นvarchar(50)และไม่ซ้ำกัน - เราสามารถมีได้ระหว่าง 1-100 รายการด้วยเหมือนกันIK(ไม่มีความคิดเห็นโปรด) เรามักจะได้รับข้อมูลใหม่ในIncidentKeyบันทึกเก่า ๆดังนั้นจึงไม่ต่อเนื่องกัน ฉันเข้าใจว่าฉันต้องรวมฟิลด์พาร์ติชันIncidentDateของฉันไว้ในคีย์ดัชนีคลัสเตอร์เพื่อให้พาร์ติชันทำงานได้อย่างถูกต้อง IncidentKey, IncidentDateฉันคิดว่ามันจะเป็น คำถามคือกลไกของดัชนีแบบคลัสเตอร์จะทำงานกับคีย์ 2 ส่วนในตารางที่แบ่งพาร์ติชันได้อย่างไรหากเร็กคอร์ดในพาร์ติชัน "ใหม่" ควรอยู่หน้าเร็กคอร์ดในพาร์ติชัน "เก่า" ในดัชนีคลัสเตอร์ ตัวอย่างเช่นฉันมี 5 บันทึก: IncidentKey Date ABC123 1/1/2010 ABC123 7/1/2010 …

2
ตารางไม่ถูกสร้างภายใต้ dbo schema
เมื่อสร้างตารางใน SSMS ฉันรู้ว่าถ้าคุณรันคำสั่งต่อไปนี้: CREATE TABLE [tableName]; ตารางจะถูกสร้างภายใต้สคีมาของคุณเอง (ไม่ใช่ dbo) ดังนั้นเพื่อสร้างมันภายใต้สคี dbo คุณจะต้องพูดอย่างชัดเจนเช่นนี้: CREATE TABLE [dbo].[tableName]; ไม่มีใครรู้วิธี (เช่นการตั้งค่าทั้งเซิร์ฟเวอร์) เพื่อให้เมื่อมีการสร้างตารางส่วน [dbo] ไม่จำเป็นต้องระบุ

4
มีวิธีย่อ 'Auto_Fix' ผู้ใช้กำพร้าทั้งหมดในฐานข้อมูล SQL Server 2008 R2 หรือไม่
ตรงไปตรงมาเพื่อแก้ไขผู้ใช้ SQL กำพร้าคนเดียวเพื่อเข้าสู่ระบบโดยใช้: EXEC sp_change_users_login 'Auto_Fix', 'ผู้ใช้' ฉันสามารถเขียนสคริปต์นี้ได้ แต่มีกระบวนการจัดเก็บที่มีอยู่ซึ่งพยายามแก้ไขผู้ใช้ที่ไม่ได้ใช้งานทุกคนในฐานข้อมูลที่กำหนดโดยอัตโนมัติหรือไม่

1
มีหน่วยความจำระบบไม่เพียงพอในกลุ่มทรัพยากร 'ภายใน' เพื่อเรียกใช้แบบสอบถามนี้
หนึ่งในเซิร์ฟเวอร์การผลิตของเรากำลังรายงานข้อผิดพลาดในบันทึก ข้อผิดพลาด: 701, ความรุนแรง: 17, สถานะ: 123 มีหน่วยความจำระบบไม่เพียงพอในกลุ่มทรัพยากร 'ภายใน' เพื่อเรียกใช้แบบสอบถามนี้ ฉันค้นหาข้อผิดพลาดนี้และพบว่าเป็นข้อผิดพลาดและมี Hot fix พร้อม Service Pack 2 นี่คือรายละเอียดของเซิร์ฟเวอร์: Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 Standard Edition (64 บิต) จำนวนโปรเซสเซอร์: 24 (มี 2 โหนด NUMA แต่ละแห่งมี 12 คอร์) หน่วยความจำ: RAM 24GB จัดสรรสำหรับ SQL Server Query Batchload / ขั้นต่ำ: 5,000+ …

6
สอบถามรายละเอียดความแตกต่างระหว่างแถวสำหรับข้อมูลจำนวนมาก
ฉันมีตารางขนาดใหญ่จำนวนมากแต่ละอันมีคอลัมน์> 300 แอปพลิเคชันที่ฉันใช้สร้าง "ที่เก็บถาวร" ของแถวที่เปลี่ยนแปลงโดยการทำสำเนาแถวปัจจุบันในตารางที่สอง ลองพิจารณาตัวอย่างเล็ก ๆ น้อย ๆ : CREATE TABLE dbo.bigtable ( UpdateDate datetime, PK varchar(12) PRIMARY KEY, col1 varchar(100), col2 int, col3 varchar(20), . . . colN datetime ); ตารางเก็บถาวร: CREATE TABLE dbo.bigtable_archive ( UpdateDate datetime, PK varchar(12) NOT NULL, col1 varchar(100), col2 int, col3 varchar(20), . …

2
วิธีตรวจสอบตัวละครที่ไม่ใช่แอสตี้
วิธีที่ดีที่สุดในการตรวจสอบว่าเขตข้อมูล VARCHAR มีอักขระที่ไม่ใช่แบบ ASCII คืออะไร CHAR(1)ผ่านCHAR(31)และผ่านCHAR(127)CHAR(255) ฉันลองใช้PATINDEXและพบปัญหาต่อไปนี้ ตรวจสอบช่วงล่างทำงานอย่างถูกต้อง SELECT * FROM mbrnotes WHERE PATINDEX('%[' + CHAR(1)+ '-' +CHAR(31)+']%',LINE_TEXT) > 0 ข้อมูลของฉันมีสามระเบียนด้วย 0x1E และทั้งสามรายการที่ส่งคืน แต่เมื่อฉันตรวจสอบเฉพาะช่วงบน: SELECT * FROM mbrnotes WHERE PATINDEX('%[' + CHAR(127)+ '-' +CHAR(255)+']%',LINE_TEXT) > 0 มันส่งกลับใกล้กับระเบียนทั้งหมดในตาราง (จำนวนตาราง 170737 และส่งกลับจำนวน 170735) และเนื่องจากข้อมูลของฉันไม่ได้มีค่าใด ๆ ในช่วงนี้ฉันจะคิดว่ามันไม่ควรกลับไม่มีระเบียน

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