ฉันจะตรวจสอบว่ามีการ จำกัด ขนาด Express Edition ได้อย่างไร


10

ฉันสับสน. AFAIK SQL Server 2005 Express มีขีด จำกัด ของความจุ 4GB ฐานข้อมูล ข้อมูลขนาด อย่างไรก็ตามฉันมีผลลัพธ์ต่อไปนี้จากsp_spaceused:

ขนาดจริงของฐานข้อมูลคืออะไร

  1. ฉันจะตรวจสอบว่า DB ของฉันมีขนาดเกินขีด จำกัด ได้อย่างไร?
  2. พื้นที่ที่ไม่ได้ปันส่วนเป็นจำนวนที่มากspace leftจนเกินขีด จำกัด หรือไม่?
  3. ฉันเหลือพื้นที่เท่าไหร่
  4. ไม่index_sizeนับรวมในขีด จำกัด ?

คุณสามารถตรวจสอบคอลัมน์ backup_size ของ msdb.dbo.backupset

คำตอบ:


6

นี่เป็นสคริปต์ที่ดีที่ฉันฉีกขาดจากที่นี่ :

use [Insert DB Name]

select
a.FILEID,
[FILE_SIZE_MB] = 
convert(decimal(12,2),round(a.size/128.000,2)),
[SPACE_USED_MB] =
convert(decimal(12,2),round(fileproperty(a.name, 'SpaceUsed')/128.000,2)),
[FREE_SPACE_MB] =
convert(decimal(12,2),round((a.size-fileproperty(a.name, 'SpaceUsed'))/128.000,2)) ,
NAME = left(a.NAME,15),
FILENAME = left(a.FILENAME,30)
from
dbo.sysfiles a

สิ่งนี้เป็นสิ่งที่ดีเพราะจะทำให้คุณมีพื้นที่ว่างในไฟล์ DB แต่ละไฟล์ (คุณอาจมีหลายไฟล์และบางคนอาจตั้งค่าให้วางวัตถุบางอย่างในแต่ละไฟล์) เช่นเดียวกับขนาดฟรี

ตัวอย่างเช่นคุณมีไฟล์ข้อมูลขนาด 4GB ซึ่งมีพื้นที่ว่าง 3GB บางทีคุณอาจมี 1 MDF โดยไม่มีข้อมูลจำนวนมาก แต่ NDF ที่มีข้อมูลจำนวนมาก แบบสอบถามนี้จะบอกขนาดฟรีในแต่ละไฟล์และฐานข้อมูลที่จัดสรรให้ อย่าลืมเพิ่ม 'SPACE_USED_MB' ทั้งหมดสำหรับแต่ละฐานข้อมูลเพื่อให้ได้ขนาดโดยรวม

โชคดี!

แก้ไข: ลบคำสั่งที่ไม่ได้รับการสนับสนุนและ buggy ที่ฉันคิดว่าฉันสามารถออกไปด้วยการโพสต์ที่นี่สำหรับแบบสอบถามนี้ :(



ป.ล. ถ้าคุณจะใช้มุมมองความเข้ากันได้แบบเก่าและแบบย้อนกลับคุณสามารถทำให้สิ่งนี้ง่ายขึ้นเล็กน้อยโดยใช้sysaltfiles(สิ่งนี้ทำให้ไม่จำเป็นต้องเข้าไปในแต่ละฐานข้อมูลเลย)
Aaron Bertrand

1
ขอบคุณ Aaron สำหรับ sysaltfiles ฉันยังไม่ได้ดูเรื่องนั้น! sp_msforeachdb มีปัญหาที่เจ็บปวดมากมาย แต่ฉันคิดว่าการติดตั้ง SQL Express เป็นเรื่องที่ผู้ชายต้องการเรียกใช้แบบสอบถามเพื่อดูว่าเขามีพื้นที่ว่างเท่าใด
Ali Razeghi

ยกเว้นเมื่อข้ามฐานข้อมูลและไม่เพิ่มข้อผิดพลาด ...
แอรอนเบอร์ทรานด์

ใช่ แต่ในกรณีนี้คุณคิดว่าจะเป็นปัญหาที่ผู้ใช้ต้องการเพียงแค่นับจำนวนขนาดฐานข้อมูลหรือไม่? ฉันเดาว่าฉันไม่ควรโพสต์ไว้แม้ในกรณีที่ผู้ใช้ปลายทางจะเห็นว่ามันข้าม DB ที่พวกเขากำลังมองหาอยู่หรือไม่ ฉันจะลบส่วนนั้น ณ จุดนี้คุณพูดถูกเราไม่ต้องการคำสั่งดังกล่าวฉาบปูนที่อื่น
Ali Razeghi

5

ขนาดของฐานข้อมูลคือขนาดของไฟล์ ดูขนาดจริงของไฟล์ข้อมูล (บันทึกธุรกรรมไม่นับ) ใช่นับดัชนี หากคุณใช้พื้นที่ไม่เพียงพอให้พิจารณาอัปเกรดเป็น SQL 2012 Express ตามที่เพิ่มขนาด จำกัด ไว้ที่ 10 Gigs


6
SQL Server 2008 R2 Express ยังมีขีด จำกัด 10 GB (เพื่อความสมบูรณ์เท่านั้น)
marc_s

1

เมื่อ sp_spaceused แสดง database_size ประมาณ 25 GB ในชุดผลลัพธ์แรกของคุณซึ่งรวมถึงไฟล์ข้อมูล / ดัชนีและบันทึกธุรกรรม เฉพาะข้อมูลและดัชนีที่แท้จริงเท่านั้นที่นับรวมในขีด จำกัด ของ SQL Server Express ดังนั้นคุณมีข้อมูลประมาณ 3.3 GB (เช่นเดียวกับในชุดผลลัพธ์ที่สองของคุณ) และ 22 GB ที่เหลือจะเป็นบันทึกธุรกรรม หากคุณเรียกใช้ "sp_helpdb" นี่จะแสดงภาพที่แท้จริงเนื่องจากจะรายงานการใช้ข้อมูลและการใช้บันทึกธุรกรรมในสองแถวที่แยกจากกัน

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