Breaking News
Loading...
13/03/2013

Xem thông tin sử dụng đĩa cứng của tất cả các Database


`wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) VALUES
(86, 1, '2011-03-20 06:47:54', '2011-03-20 06:47:54', '<span style="color: #0000ff;"><strong>I. VẤN ĐỀ ĐẶT RA:</strong></span>\r\n<ul>\r\n <li>Làm thế nào tôi biết nhanh 1 database (hay 1 table) đã chiếm bao nhiêu dung lượng ổ cứng, trong đó bao nhiêu dung lượng để lưu trữ data, bao nhiêu dung lượng để lưu trữ index?</li>\r\n <li>Làm thế nào tôi biết nhanh tổng số record của 1 table nào đó, hay tất cả các table trong 1 Database? Nếu làm theo cách ‘select count(tên cột) from…’ thì quá lâu.</li>\r\n</ul>\r\nĐể giải quyết những câu hỏi trên, bạn hãy dùng <strong>sp_spaceused</strong>\r\n\r\n<span style="color: #0000ff;"><strong>II. THỰC HÀNH:</strong></span>\r\n<ol>\r\n <li><strong>Trong ví dụ này, tôi có 1 database tên là ''Test''. Chạy câu lệnh sp_spaceused không tham số.\r\n</strong></li>\r\n</ol>\r\n<a href="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForDatabase.jpg"><img class="alignnone size-full wp-image-78" title="Sp_spaceusedForDatabase" src="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForDatabase.jpg" alt="" width="319" height="169" /></a>\r\n\r\nTrong đó:\r\n\r\n<strong>Database_name</strong>: tên database của bạn\r\n\r\n<strong>Database_size</strong>: Kích cỡ toàn bộ database của bạn (tính theo MB). <strong>Lưu ý là bao gồm cả file data và file log</strong>.\r\n\r\n<strong>Unallocated space</strong>: Không gian trong database chưa được cấp phát cho các object.\r\n\r\n<strong>Reserved</strong>: Không gian đĩa được cấp phát cho các object trong database (tính theo KB)\r\n\r\n<strong>Data</strong>: Không gian đĩa được sử dụng để lưu trữ data.\r\n\r\n<strong>Index_size</strong>: không gian đĩa được sử dụng để lưu trữ index.\r\n\r\n<strong>Unused</strong>: Không gian đĩa được cấp phát cho các object trong database, nhưng chưa được sử dụng.\r\n\r\n<strong> Lưu ý</strong>: <strong>database_size luôn lớn hơn reserved + unallocated space</strong> vì nó bao gồm cả file log.\r\n<p style="padding-left: 30px;"><strong>2. Trong ví dụ này, tôi có 1 table tên là ''Test''. Chạy câu lệnh sp_spaceused kèm theo tên bảng</strong></p>\r\n<a href="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForTable.jpg"><img class="alignnone size-full wp-image-79" title="Sp_spaceusedForTable" src="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForTable.jpg" alt="" width="353" height="116" /></a>\r\n\r\nTrong đó:\r\n\r\n<strong>Name</strong>: tên của table\r\n\r\n<strong>Rows:</strong> tổng số dòng của table\r\n\r\n<strong>Reserved:</strong> không gian đĩa được cấp phát cho table này\r\n\r\n<strong>Data: </strong>không gian đĩa được dùng để lưu trữ data\r\n\r\n<strong>Index_size: </strong>không gian đĩa được dùng để lưu trữ index\r\n\r\n<strong>Unused:</strong> không gian đĩa được cấp phát cho table, nhưng chưa được sử dụng\r\n<p style="padding-left: 30px;"><strong>3. Nhanh chóng lấy tất cả thông tin sử dụng đĩa cứng của tất cả các bảng trong 1 Database:</strong></p>\r\nIF OBJECT_ID(''tempdb..#tablesize'') IS NOT NULL\r\nDROP TABLE #TableSize\r\n\r\nCREATE TABLE #TableSize (\r\nName       VARCHAR(512),\r\nRows       INT,\r\nReserved   VARCHAR(18),\r\nData       VARCHAR(18),\r\nIndex_size VARCHAR(18),\r\nUnused     VARCHAR(18))\r\n\r\ninsert into #TableSize\r\nexec sp_msforeachtable ''exec sp_spaceused ''''?''''''\r\n\r\nselect * from #TableSize order by rows desc\r\n\r\nKết quả khi chạy đoạn script trên database của tôi.\r\n\r\n<a href="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForAllTable.jpg"><img class="alignnone size-full wp-image-82" title="Sp_spaceusedForAllTable" src="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForAllTable.jpg" alt="" width="387" height="167" /></a>\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Xem thông tin sử dụng đĩa cứng với sp_spaceused', '', 'inherit', 'open', 'open', '', '77-revision-3', '', '', '2011-03-20 06:47:54', '2011-03-20 06:47:54', '', 77, 'http://sqlvn.com/uncategorized/77-revision-3.html', 0, 'revision', '', 0),
(87, 1, '2011-03-20 06:59:09', '2011-03-20 06:59:09', '<span style="color: #0000ff;"><strong>I. VẤN ĐỀ ĐẶT RA:</strong></span>\r\n<ul>\r\n <li>Làm thế nào tôi biết nhanh 1 database (hay 1 table) đã chiếm bao nhiêu dung lượng ổ cứng, trong đó bao nhiêu dung lượng để lưu trữ data, bao nhiêu dung lượng để lưu trữ index?</li>\r\n <li>Làm thế nào tôi biết nhanh tổng số record của 1 table nào đó, hay tất cả các table trong 1 Database? Nếu làm theo cách ‘select count(tên cột) from…’ thì quá lâu.</li>\r\n</ul>\r\nĐể giải quyết những câu hỏi trên, bạn hãy dùng <strong>sp_spaceused</strong>\r\n\r\n<span style="color: #0000ff;"><strong>II. THỰC HÀNH:</strong></span>\r\n<ol>\r\n <li><strong>Trong ví dụ này, tôi có 1 database tên là ''Test''. Chạy câu lệnh sp_spaceused không tham số.\r\n</strong></li>\r\n</ol>\r\n<a href="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForDatabase.jpg"><img class="alignnone size-full wp-image-78" title="Sp_spaceusedForDatabase" src="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForDatabase.jpg" alt="" width="319" height="169" /></a>\r\n\r\nTrong đó:\r\n\r\n<strong>Database_name</strong>: tên database của bạn\r\n\r\n<strong>Database_size</strong>: Kích cỡ toàn bộ database của bạn (tính theo MB). <strong>Lưu ý là bao gồm cả file data và file log</strong>.\r\n\r\n<strong>Unallocated space</strong>: Không gian trong database chưa được cấp phát cho các object.\r\n\r\n<strong>Reserved</strong>: Không gian đĩa được cấp phát cho các object trong database (tính theo KB)\r\n\r\n<strong>Data</strong>: Không gian đĩa được sử dụng để lưu trữ data.\r\n\r\n<strong>Index_size</strong>: không gian đĩa được sử dụng để lưu trữ index.\r\n\r\n<strong>Unused</strong>: Không gian đĩa được cấp phát cho các object trong database, nhưng chưa được sử dụng.\r\n\r\n<strong> Lưu ý</strong>: <strong>database_size luôn lớn hơn reserved + unallocated space</strong> vì nó bao gồm cả file log.\r\n<p style="padding-left: 30px;"><strong>2. Trong ví dụ này, tôi có 1 table tên là ''Test''. Chạy câu lệnh sp_spaceused kèm theo tên bảng</strong></p>\r\n<a href="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForTable.jpg"><img class="alignnone size-full wp-image-79" title="Sp_spaceusedForTable" src="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForTable.jpg" alt="" width="353" height="116" /></a>\r\n\r\nTrong đó:\r\n\r\n<strong>Name</strong>: tên của table\r\n\r\n<strong>Rows:</strong> tổng số dòng của table\r\n\r\n<strong>Reserved:</strong> không gian đĩa được cấp phát cho table này\r\n\r\n<strong>Data: </strong>không gian đĩa được dùng để lưu trữ data\r\n\r\n<strong>Index_size: </strong>không gian đĩa được dùng để lưu trữ index\r\n\r\n<strong>Unused:</strong> không gian đĩa được cấp phát cho table, nhưng chưa được sử dụng\r\n<p style="padding-left: 30px;"><strong>3. Nhanh chóng lấy tất cả thông tin sử dụng đĩa cứng của tất cả các bảng trong 1 Database:</strong></p>\r\nIF OBJECT_ID(''tempdb..#tablesize'') IS NOT NULL\r\nDROP TABLE #TableSize\r\n\r\nCREATE TABLE #TableSize (\r\nName       VARCHAR(512),\r\nRows       INT,\r\nReserved   VARCHAR(18),\r\nData       VARCHAR(18),\r\nIndex_size VARCHAR(18),\r\nUnused     VARCHAR(18))\r\n\r\ninsert into #TableSize\r\nexec sp_msforeachtable ''exec sp_spaceused ''''?''''''\r\n\r\nselect * from #TableSize order by rows desc\r\n\r\nKết quả khi chạy đoạn script trên database của tôi.\r\n\r\n<a href="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForAllTable.jpg"><img class="alignnone size-full wp-image-82" title="Sp_spaceusedForAllTable" src="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForAllTable.jpg" alt="" width="387" height="167" /></a>\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Xem thông tin sử dụng đĩa cứng với sp_spaceused', '', 'inherit', 'open', 'open', '', '77-revision-4', '', '', '2011-03-20 06:59:09', '2011-03-20 06:59:09', '', 77, 'http://sqlvn.com/uncategorized/77-revision-4.html', 0, 'revision', '', 0),
(119, 1, '2011-03-20 07:44:47', '2011-03-20 07:44:47', '<span style="color: #0000ff;"><strong>I. VẤN ĐỀ ĐẶT RA</strong></span>\r\n<ul>\r\n <li>Bạn quản trị 1 máy chủ SQL Server với gần chục Database đang họat động. Làm thế nào bạn nhanh chóng biết được mỗi database đã sử dụng bao nhiêu không gian đĩa cứng.</li>\r\n <li>Nếu không làm công việc này thường xuyên, khi các database của bạn phát triển và chiếm hết dung lượng đĩa cứng, gây tắc nghẽn toàn bộ hệ thống, các ứng dụng con không thể kết nối đến máy chủ SQL Server, thì bạn sẽ chịu toàn bộ trách nhiệm.</li>\r\n</ul>\r\nCâu trả lời là dùng sys.master_files, chứa thông tin sử dụng đĩa cứng của các file database được lưu trong database Master.\r\n\r\nHãy tự động kiểm tra và báo động kịp thời nếu các Database của bạn vượt quá dung lượng ổ cứng cho phép.\r\n\r\n<strong><span style="color: #0000ff;">II. THỰC HÀNH</span></strong>\r\n\r\n<span style="color: #800000;">Đoạn script sau sẽ liệt kê tất cả các file của 1 database và kích cỡ của chúng trong hệ thống</span>.\r\n<p style="padding-left: 30px;">SELECT DB_NAME(database_id) AS Database_Name,</p>\r\n<p style="padding-left: 30px;">Name AS Logical_Name,</p>\r\n<p style="padding-left: 30px;">Physical_Name, (size*8)/1024 SizeMB</p>\r\n<p style="padding-left: 30px;">FROM <strong>sys.master_files</strong></p>\r\n<p style="padding-left: 30px;">WHERE DB_NAME(database_id) = ''SeaFood''</p>\r\n<span style="color: #800000;">Nếu bạn muốn biết thông tin của tất cả Database, thì bỏ mệnh đề ‘WHERE’ đi.</span>\r\n\r\nTrong đó:\r\n\r\n<strong>Database_Name</strong>: tên của Database\r\n\r\n<strong>Logical_Name</strong>: tên của mỗi file trong database\r\n\r\n<strong>Physical_Name</strong>: đường dẫn vật lý nơi lưu trữ các file database\r\n\r\n<span style="color: #800000;"> Kết quả khi chạy trên SQL Server của tôi.</span>\r\n\r\n<img class="alignnone size-full wp-image-92" title="sys_masters_files_AllDatabase" src="http://sqlvn.com/wp-content/uploads/sys_masters_files_AllDatabase.jpg" alt="" width="645" height="409" />\r\n\r\nMuốn biết thêm thông tin về sys.master_files, bạn có thể tham khảo trên MSDN.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Xem thông tin sử dụng đĩa cứng của Database với sys.master_files', '', 'inherit', 'open', 'open', '', '90-revision-8', '', '', '2011-03-20 07:44:47', '2011-03-20 07:44:47', '', 90, 'http://sqlvn.com/uncategorized/90-revision-8.html', 0, 'revision', '', 0),
(88, 1, '2011-03-20 07:01:50', '2011-03-20 07:01:50', '<span style="color: #0000ff;"><strong>I. VẤN ĐỀ ĐẶT RA:</strong></span>\r\n<ul>\r\n <li>Làm thế nào tôi biết nhanh 1 database (hay 1 table) đã chiếm bao nhiêu dung lượng ổ cứng, trong đó bao nhiêu dung lượng để lưu trữ data, bao nhiêu dung lượng để lưu trữ index?</li>\r\n <li>Làm thế nào tôi biết nhanh tổng số record của 1 table nào đó, hay tất cả các table trong 1 Database? Nếu làm theo cách ‘select count(tên cột) from…’ thì quá lâu.</li>\r\n</ul>\r\nĐể giải quyết những câu hỏi trên, bạn hãy dùng <strong>sp_spaceused</strong>\r\n\r\n<span style="color: #0000ff;"><strong>II. THỰC HÀNH:</strong></span> <strong></strong>\r\n<p style="padding-left: 30px;"><strong><span style="color: #800000;">1. Trong ví dụ này, tôi có 1 database tên là ''Test''. Chạy câu lệnh sp_spaceused không tham số.</span>\r\n</strong></p>\r\n\r\n<ol></ol>\r\n<a href="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForDatabase.jpg"><img class="alignnone size-full wp-image-78" title="Sp_spaceusedForDatabase" src="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForDatabase.jpg" alt="" width="319" height="169" /></a>\r\n\r\nTrong đó:\r\n\r\n<strong>Database_name</strong>: tên database của bạn\r\n\r\n<strong>Database_size</strong>: Kích cỡ toàn bộ database của bạn (tính theo MB). <strong>Lưu ý là bao gồm cả file data và file log</strong>.\r\n\r\n<strong>Unallocated space</strong>: Không gian trong database chưa được cấp phát cho các object.\r\n\r\n<strong>Reserved</strong>: Không gian đĩa được cấp phát cho các object trong database (tính theo KB)\r\n\r\n<strong>Data</strong>: Không gian đĩa được sử dụng để lưu trữ data.\r\n\r\n<strong>Index_size</strong>: không gian đĩa được sử dụng để lưu trữ index.\r\n\r\n<strong>Unused</strong>: Không gian đĩa được cấp phát cho các object trong database, nhưng chưa được sử dụng.\r\n\r\n<strong> Lưu ý</strong>: <strong>database_size luôn lớn hơn reserved + unallocated space</strong> vì nó bao gồm cả file log.\r\n<p style="padding-left: 30px;"><span style="color: #800000;"><strong>2. Trong ví dụ này, tôi có 1 table tên là ''Test''. Chạy câu lệnh sp_spaceused kèm theo tên bảng</strong></span></p>\r\n<a href="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForTable.jpg"><img class="alignnone size-full wp-image-79" title="Sp_spaceusedForTable" src="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForTable.jpg" alt="" width="353" height="116" /></a>\r\n\r\nTrong đó:\r\n\r\n<strong>Name</strong>: tên của table\r\n\r\n<strong>Rows:</strong> tổng số dòng của table\r\n\r\n<strong>Reserved:</strong> không gian đĩa được cấp phát cho table này\r\n\r\n<strong>Data: </strong>không gian đĩa được dùng để lưu trữ data\r\n\r\n<strong>Index_size: </strong>không gian đĩa được dùng để lưu trữ index\r\n\r\n<strong>Unused:</strong> không gian đĩa được cấp phát cho table, nhưng chưa được sử dụng\r\n<p style="padding-left: 30px;"><span style="color: #800000;"><strong>3. Nhanh chóng lấy thông tin sử dụng đĩa cứng của tất cả các Table trong 1 Database:</strong></span></p>\r\nIF OBJECT_ID(''tempdb..#tablesize'') IS NOT NULL\r\nDROP TABLE #TableSize\r\n\r\nCREATE TABLE #TableSize (\r\nName       VARCHAR(512),\r\nRows       INT,\r\nReserved   VARCHAR(18),\r\nData       VARCHAR(18),\r\nIndex_size VARCHAR(18),\r\nUnused     VARCHAR(18))\r\n\r\ninsert into #TableSize\r\nexec sp_msforeachtable ''exec sp_spaceused ''''?''''''\r\n\r\nselect * from #TableSize order by rows desc\r\n\r\nKết quả khi chạy đoạn script trên database của tôi.\r\n\r\n<a href="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForAllTable.jpg"><img class="alignnone size-full wp-image-82" title="Sp_spaceusedForAllTable" src="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForAllTable.jpg" alt="" width="387" height="167" /></a>\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Xem thông tin sử dụng đĩa cứng với sp_spaceused', '', 'inherit', 'open', 'open', '', '77-revision-5', '', '', '2011-03-20 07:01:50', '2011-03-20 07:01:50', '', 77, 'http://sqlvn.com/uncategorized/77-revision-5.html', 0, 'revision', '', 0),
(89, 1, '2011-03-20 07:09:12', '2011-03-20 07:09:12', '<span style="color: #0000ff;"><strong>I. VẤN ĐỀ ĐẶT RA:</strong></span>\r\n<ul>\r\n <li>Làm thế nào tôi biết nhanh 1 database (hay 1 table) đã chiếm bao nhiêu dung lượng ổ cứng, trong đó bao nhiêu dung lượng được dùng để lưu trữ data, bao nhiêu dung lượng được dùng để lưu trữ index?</li>\r\n <li>Làm thế nào tôi biết nhanh tổng số record của 1 table nào đó, hay tất cả các table trong 1 Database? Nếu làm theo cách ‘select count(tên cột) from…’ thì quá lâu.</li>\r\n</ul>\r\nĐể giải quyết những câu hỏi trên, bạn hãy dùng <strong>sp_spaceused</strong>\r\n\r\n<span style="color: #0000ff;"><strong>II. THỰC HÀNH:</strong></span> <strong></strong>\r\n<p style="padding-left: 30px;"><strong><span style="color: #800000;">1. Trong ví dụ này, tôi có 1 database tên là ''Test''. Chạy câu lệnh sp_spaceused không tham số.</span>\r\n</strong></p>\r\n<a href="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForDatabase.jpg"><img class="alignnone size-full wp-image-78" title="Sp_spaceusedForDatabase" src="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForDatabase.jpg" alt="" width="319" height="169" /></a>\r\n\r\nTrong đó:\r\n\r\n<strong>Database_name</strong>: tên database của bạn\r\n\r\n<strong>Database_size</strong>: Kích cỡ toàn bộ database của bạn (tính theo MB). <strong>Lưu ý là bao gồm cả file data và file log</strong>.\r\n\r\n<strong>Unallocated space</strong>: Không gian trong database chưa được cấp phát cho các object.\r\n\r\n<strong>Reserved</strong>: Không gian đĩa được cấp phát cho các object trong database (tính theo KB)\r\n\r\n<strong>Data</strong>: Không gian đĩa được sử dụng để lưu trữ data.\r\n\r\n<strong>Index_size</strong>: không gian đĩa được sử dụng để lưu trữ index.\r\n\r\n<strong>Unused</strong>: Không gian đĩa được cấp phát cho các object trong database, nhưng chưa được sử dụng.\r\n\r\n<strong> Lưu ý</strong>: <strong>database_size luôn lớn hơn reserved + unallocated space</strong> vì nó bao gồm cả file log.\r\n<p style="padding-left: 30px;"><span style="color: #800000;"><strong>2. Trong ví dụ này, tôi có 1 table tên là ''Test''. Chạy câu lệnh sp_spaceused kèm theo tên bảng</strong></span></p>\r\n<a href="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForTable.jpg"><img class="alignnone size-full wp-image-79" title="Sp_spaceusedForTable" src="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForTable.jpg" alt="" width="353" height="116" /></a>\r\n\r\nTrong đó:\r\n\r\n<strong>Name</strong>: tên của table\r\n\r\n<strong>Rows:</strong> tổng số dòng của table\r\n\r\n<strong>Reserved:</strong> không gian đĩa được cấp phát cho table này\r\n\r\n<strong>Data: </strong>không gian đĩa được dùng để lưu trữ data\r\n\r\n<strong>Index_size: </strong>không gian đĩa được dùng để lưu trữ index\r\n\r\n<strong>Unused:</strong> không gian đĩa được cấp phát cho table, nhưng chưa được sử dụng\r\n<p style="padding-left: 30px;"><span style="color: #800000;"><strong>3. Nhanh chóng lấy thông tin sử dụng đĩa cứng của tất cả các Table trong 1 Database:</strong></span></p>\r\nIF OBJECT_ID(''tempdb..#tablesize'') IS NOT NULL\r\nDROP TABLE #TableSize\r\n\r\nCREATE TABLE #TableSize (\r\nName       VARCHAR(512),\r\nRows       INT,\r\nReserved   VARCHAR(18),\r\nData       VARCHAR(18),\r\nIndex_size VARCHAR(18),\r\nUnused     VARCHAR(18))\r\n\r\ninsert into #TableSize\r\nexec sp_msforeachtable ''exec sp_spaceused ''''?''''''\r\n\r\nselect * from #TableSize order by rows desc\r\n\r\nKết quả khi chạy đoạn script trên database của tôi.\r\n\r\n<a href="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForAllTable.jpg"><img class="alignnone size-full wp-image-82" title="Sp_spaceusedForAllTable" src="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForAllTable.jpg" alt="" width="387" height="167" /></a>\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Xem thông tin sử dụng đĩa cứng với sp_spaceused', '', 'inherit', 'open', 'open', '', '77-revision-6', '', '', '2011-03-20 07:09:12', '2011-03-20 07:09:12', '', 77, 'http://sqlvn.com/uncategorized/77-revision-6.html', 0, 'revision', '', 0),
(101, 1, '2011-03-20 08:06:53', '2011-03-20 08:06:53', '<a href="http://sqlvn.com/wp-content/uploads/HowToBecomeDBA.jpg"><img class="alignnone size-full wp-image-734" title="HowToBecomeDBA" src="http://sqlvn.com/wp-content/uploads/HowToBecomeDBA.jpg" alt="" width="512" height="294" /></a>\r\n<p style="text-align: justify;">Tôi muốn trở thành 1 Database Administrator (DBA) với nền tảng kiến thức vững vàng, và làm chủ công việc. Tôi tự đặt cho mình nhiều câu hỏi chuyên môn và tham khảo ý kiến đồng nghiệp, đọc nhiều tài liệu để đi tìm câu trả lời. Quá nhiều kiến thức cần phải học để trở thành 1 DBA, tôi chọn chuyên về SQL Performance Tuning, nhưng lượng kiến thức cũng không phải là nhỏ. Theo bạn, tôi có nên tiếp thu càng nhiều càng tốt hay không?<!--more--></p>\r\nTheo quan điểm của mình, tôi nghĩ là nên.\r\n\r\nNhiều ý kiến cho rằng “<strong>Không cần phải biết quá nhiều</strong>”, khi cần ta có thể <strong>dễ dàng tìm kiếm kiến thức trên Internet (Qua Google, Bing), hay các đồng nghiệp có thể giúp ta</strong>. Có thể nói là chờ <strong>‘nước đến chân mới nhảy’</strong>. Vậy xem qua 1 tình huống:\r\n<ul>\r\n <li>1 hệ thống database lớn và quan trọng đột nhiên không thể họat động, hay họat động quá chậm  không rõ nguyên nhân.</li>\r\n <li>Các cuộc điện thoại, Email than phiền từ khách hàng, sếp, đồng nghiệp dồn dập được gửi đến bạn hỏi nguyên nhân do đâu, và hối thúc mau chóng giải quyết vấn đề.</li>\r\n <li>Bạn phải đương đầu với 2 áp lực:</li>\r\n</ul>\r\n<ol>\r\n <li><span style="color: #800000;">Khách hàng, sếp…ra áp lực yêu cầu phải phục hồi Database trở lại trạng thái tốt nhất  và trong thời gian ngắn nhất để các giao dịch tiếp tục.</span></li>\r\n <li><span style="color: #800000;">Trong khi bạn lại cần thêm thời gian để xác định đâu là nguyên nhân chính gây ra sự cố, để ngăn chặn nó xảy ra lần sau.</span></li>\r\n</ol>\r\nLiệu ta có đủ thời gian để đọc và làm thử các lời khuyên từ Internet, hay nghe lời gợi ý từ các đồng nghiệp? (giả sử họ cũng chưa từng gặp qua trường hợp này). Ai muốn chờ đợi ta?\r\n\r\nNếu ta có kiến thức chuyên sâu và kinh nghiệm, ta có thể giải quyết vấn đề 1 cách độc lập và nhanh chóng. Thậm chí ngăn chặn ngay từ đầu.\r\n\r\nHãy làm cuộc sống tốt đẹp hơn bằng cách chuẩn bị cho những điều tồi tệ nhất khi chúng vẫn chưa xảy ra. Chuẩn bị và chuẩn bị.\r\n<img class="alignnone size-full wp-image-113" title="ShareKnowledge" src="http://sqlvn.com/wp-content/uploads/ShareKnowledge.jpeg" alt="" width="232" height="217" /><a href="http://sqlvn.com/wp-content/uploads/BecomeDBA.jpg"></a>\r\n<p style="text-align: right;"><a href="http://sqlvn.com/wp-content/uploads/BecomeDBA.jpg">Quang Vinh\r\nmai.quangvinh@sqlvn.com</a></p>', 'Trở thành DBA - Có nên biết quá nhiều?', '', 'publish', 'open', 'open', '', 'tro-thanh-dba-co-nen-biet-qua-nhieu', '', '', '2011-10-04 06:55:18', '2011-10-04 06:55:18', '', 0, 'http://sqlvn.com/?p=101', 0, 'post', '', 3),
(118, 1, '2011-03-20 07:45:29', '2011-03-20 07:45:29', '<span style="color: #0000ff;"><strong>I. VẤN ĐỀ ĐẶT RA:</strong></span>\r\n<ul>\r\n <li>Làm thế nào tôi biết nhanh 1 database (hay 1 table) đã chiếm bao nhiêu dung lượng ổ cứng, trong đó bao nhiêu dung lượng được dùng để lưu trữ data, bao nhiêu dung lượng được dùng để lưu trữ index?</li>\r\n <li>Làm thế nào tôi biết nhanh tổng số record của 1 table nào đó, hay của tất cả các table trong 1 Database? Nếu làm theo cách ‘select count(tên cột) from…’ thì quá lâu.</li>\r\n</ul>\r\nĐể giải quyết những câu hỏi trên, bạn hãy dùng <strong>sp_spaceused</strong>\r\n\r\n<span style="color: #0000ff;"><strong>II. THỰC HÀNH:</strong></span> <strong></strong>\r\n<p style="padding-left: 30px;"><strong><span style="color: #800000;">1. Trong ví dụ này, tôi có 1 database tên là ''Test''. Chạy câu lệnh sp_spaceused không tham số.</span>\r\n</strong></p>\r\n<a href="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForDatabase.jpg"><img class="alignnone size-full wp-image-78" title="Sp_spaceusedForDatabase" src="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForDatabase.jpg" alt="" width="319" height="169" /></a>\r\n\r\nTrong đó:\r\n\r\n<strong>Database_name</strong>: tên database của bạn\r\n\r\n<strong>Database_size</strong>: Kích cỡ toàn bộ database của bạn (tính theo MB). <strong>Lưu ý là bao gồm cả file data và file log</strong>.\r\n\r\n<strong>Unallocated space</strong>: Không gian trong database chưa được cấp phát cho các object.\r\n\r\n<strong>Reserved</strong>: Không gian đĩa được cấp phát cho các object trong database (tính theo KB)\r\n\r\n<strong>Data</strong>: Không gian đĩa được sử dụng để lưu trữ data.\r\n\r\n<strong>Index_size</strong>: không gian đĩa được sử dụng để lưu trữ index.\r\n\r\n<strong>Unused</strong>: Không gian đĩa được cấp phát cho các object trong database, nhưng chưa được sử dụng.\r\n\r\n<strong> Lưu ý</strong>: <strong>database_size luôn lớn hơn reserved + unallocated space</strong> vì nó bao gồm cả file log.\r\n<p style="padding-left: 30px;"><span style="color: #800000;"><strong>2. Trong ví dụ này, tôi có 1 table tên là ''Test''. Chạy câu lệnh sp_spaceused kèm theo tên bảng</strong></span></p>\r\n<img class="alignnone size-full wp-image-79" title="Sp_spaceusedForTable" src="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForTable.jpg" alt="" width="353" height="116" />\r\n\r\nTrong đó:\r\n\r\n<strong>Name</strong>: tên của table\r\n\r\n<strong>Rows:</strong> tổng số dòng của table\r\n\r\n<strong>Reserved:</strong> không gian đĩa được cấp phát cho table này\r\n\r\n<strong>Data: </strong>không gian đĩa được dùng để lưu trữ data\r\n\r\n<strong>Index_size: </strong>không gian đĩa được dùng để lưu trữ index\r\n\r\n<strong>Unused:</strong> không gian đĩa được cấp phát cho table, nhưng chưa được sử dụng\r\n<p style="padding-left: 30px;"><span style="color: #800000;"><strong>3. Nhanh chóng lấy thông tin sử dụng đĩa cứng của tất cả các Table trong 1 Database:</strong></span></p>\r\nIF OBJECT_ID(''tempdb..#tablesize'') IS NOT NULL\r\nDROP TABLE #TableSize\r\n\r\nCREATE TABLE #TableSize (\r\nName       VARCHAR(512),\r\nRows       INT,\r\nReserved   VARCHAR(18),\r\nData       VARCHAR(18),\r\nIndex_size VARCHAR(18),\r\nUnused     VARCHAR(18))\r\n\r\ninsert into #TableSize\r\nexec sp_msforeachtable ''exec sp_spaceused ''''?''''''\r\n\r\nselect * from #TableSize order by rows desc\r\n\r\nKết quả khi chạy đoạn script trên database của tôi.\r\n\r\n<img class="alignnone size-full wp-image-82" title="Sp_spaceusedForAllTable" src="http://sqlvn.com/wp-content/uploads/Sp_spaceusedForAllTable.jpg" alt="" width="387" height="167" />\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Xem thông tin sử dụng đĩa cứng với sp_spaceused', '', 'inherit', 'open', 'open', '', '77-revision-8', '', '', '2011-03-20 07:45:29', '2011-03-20 07:45:29', '', 77, 'http://sqlvn.com/uncategorized/77-revision-8.html', 0, 'revision', '', 0),
(90, 1, '2011-03-20 07:36:31', '2011-03-20 07:36:31', '<span style="color: #0000ff;"><strong>I. VẤN ĐỀ ĐẶT RA</strong></span>\r\n<ul>\r\n <li>Bạn quản trị 1 máy chủ SQL Server với gần chục Database đang họat động. Làm thế nào bạn nhanh chóng biết được mỗi database đã sử dụng bao nhiêu không gian đĩa cứng.</li>\r\n <li>Nếu không làm công việc này thường xuyên, khi các database của bạn phát triển và chiếm hết dung lượng đĩa cứng, gây tắc nghẽn toàn bộ hệ thống, các ứng dụng con không thể kết nối đến máy chủ SQL Server, có lẽ bạn sẽ tự hỏi tại sao mình không ngăn chặn ngay từ đầu.</li>\r\n</ul>\r\nCâu trả lời là dùng sys.master_files, chứa thông tin sử dụng đĩa cứng của các file database được lưu trong database Master.\r\n\r\nHãy tự động kiểm tra và báo động kịp thời nếu các Database của bạn vượt quá dung lượng ổ cứng cho phép.<!--more-->\r\n\r\n<strong><span style="color: #0000ff;">II. THỰC HÀNH</span></strong>\r\n\r\n<span style="color: #800000;">Đoạn script sau sẽ liệt kê tất cả các file của 1 database và kích cỡ của chúng trong hệ thống</span>.\r\n\r\n[sql]\r\n\r\nSELECT DB_NAME(database_id) AS Database_Name,\r\n\r\nName AS Logical_Name,\r\n\r\nPhysical_Name, (size*8)/1024 SizeMB\r\n\r\nFROM sys.master_files\r\n\r\nWHERE DB_NAME(database_id) = ''Tên Database''\r\n\r\n[/sql]\r\n\r\n<span style="color: #800000;">Nếu bạn muốn biết thông tin của tất cả Database, thì bỏ mệnh đề ‘WHERE’ đi.</span>\r\n\r\nTrong đó:\r\n\r\n<strong>Database_Name</strong>: tên của Database\r\n\r\n<strong>Logical_Name</strong>: tên của mỗi file trong database\r\n\r\n<strong>Physical_Name</strong>: đường dẫn vật lý nơi lưu trữ các file database\r\n\r\n<span style="color: #800000;"> Kết quả khi chạy trên SQL Server của tôi.</span>\r\n\r\n<img class="alignnone size-full wp-image-92" title="sys_masters_files_AllDatabase" src="http://sqlvn.com/wp-content/uploads/sys_masters_files_AllDatabase.jpg" alt="" width="645" height="409" />\r\n\r\nMuốn biết thêm thông tin về sys.master_files, bạn có thể tham khảo trên MSDN.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Kiểm soát tình trạng sử dụng đĩa cứng của Database với sys.master_files', '', 'publish', 'open', 'open', '', 'xem-thong-tin-su-dung-dia-cung-cua-tat-ca-cac-database', '', '', '2011-09-03 03:38:13', '2011-09-03 03:38:13', '', 0, 'http://sqlvn.com/?p=90', 0, 'post', '', 2),
(1009, 1, '2011-09-03 04:07:34', '2011-09-03 04:07:34', 'Trong quá trình làm việc với <em><strong>SQL Server</strong></em>, sẽ có lúc bạn cần thu hẹp (truncate) lại dung lượng của file Transaction Log của một database nào đó.<!--more-->\r\n\r\nNhư database tôi đang dùng, mặc dù database đang ở chế độ Full Recovery Model, nhưng tôi vẫn muốn dọn dẹp dung lượng của file log. Xin chia sẻ đoạn script để thực hiện công việc này cho những bạn có nhu cầu.\r\n\r\nVí dụ sau đây được tôi thực hiện trên <em><strong>SQL Server</strong></em> 2008.\r\n\r\nTrước khi thực hiện việc thu hẹp  file Log, tôi xem qua dung lượng hiện tại của các file trong database của tôi, trong ví dụ này là ''DomainBank'', tôi đùng đoạn <a title="Kiểm soát tình trạng sử dụng đĩa cứng của Database" href="http://sqlvn.com/sql-chuyen-sau/quan-tri-sql-server/xem-thong-tin-su-dung-dia-cung-cua-tat-ca-cac-database.html" target="_blank">script </a>sau:\r\n\r\n[sql]\r\n\r\nSELECT DB_NAME(database_id) AS DatabaseName,\r\nName AS Logical_Name,\r\nPhysical_Name, (size*8)/1024 SizeMB\r\nFROM sys.master_files\r\nWHERE DB_NAME(database_id) = ''Domainbank''\r\nGO\r\n\r\n[/sql]\r\n\r\nĐây là kết quả trả về, bạn thấy Log file đang có dung lượng là 5474 MB.\r\n\r\n<a href="http://sqlvn.com/wp-content/uploads/TruncateLogFile1.jpg"><img class="alignnone size-full wp-image-1010" title="TruncateLogFile1" src="http://sqlvn.com/wp-content/uploads/TruncateLogFile1.jpg" alt="" width="478" height="113" /></a>\r\nTiếp theo tôi cho thực thi đoạn script để thu hẹp (truncate) file Transaction Log\r\n\r\n[sql]\r\nALTER DATABASE DomainBank SET RECOVERY SIMPLE WITH no_wait;\r\n--Cho file Transaction Log thu hẹp xuống còn 1 MB\r\nDBCC shrinkfile(DomainBank_log, 1);\r\nALTER DATABASE DomainBank SET RECOVERY FULL WITH no_wait;\r\n[/sql]\r\n\r\nKết quả sau khi chạy đoạn script, bạn thấy file Transaction Log còn lại 1 MB.\r\n<a href="http://sqlvn.com/wp-content/uploads/TruncateLogFile2.jpg"><img class="alignnone size-full wp-image-1011" title="TruncateLogFile2" src="http://sqlvn.com/wp-content/uploads/TruncateLogFile2.jpg" alt="" width="479" height="107" /></a>\r\n\r\nLưu ý: Nếu Database đang ở chế độ Full Recovery Model, có 2 cách để truncate file Transaction Log\r\n<ul>\r\n <li>Thực hiện Full Backup Database, sau đó thực hiện Differential Backup, sau đó thực hiện Transaction Log Backup sẽ thu hẹp dung lượng của file Log.</li>\r\n <li>Làm như cách tôi chia sẻ trong bài viết này.</li>\r\n</ul>\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Truncate Transaction log cho Database', '', 'publish', 'open', 'open', '', 'truncate-transaction-log-cho-database', '', '\nhttp://sqlvn.com/sql-chuyen-sau/quan-tri-sql-server/xem-thong-tin-su-dung-dia-cung-cua-tat-ca-cac-database.html', '2012-06-12 08:33:02', '2012-06-12 08:33:02', '', 0, 'http://sqlvn.com/?p=1009', 0, 'post', '', 0),
(91, 1, '2011-03-20 07:14:42', '2011-03-20 07:14:42', '', 'Auto Draft', '', 'inherit', 'open', 'open', '', '90-revision', '', '', '2011-03-20 07:14:42', '2011-03-20 07:14:42', '', 90, 'http://sqlvn.com/uncategorized/90-revision.html', 0, 'revision', '', 0),
(92, 1, '2011-03-20 07:33:07', '2011-03-20 07:33:07', '', 'sys_masters_files_AllDatabase', '', 'inherit', 'open', 'open', '', 'sys_masters_files_alldatabase', '', '', '2011-03-20 07:33:07', '2011-03-20 07:33:07', '', 90, 'http://sqlvn.com/wp-content/uploads/sys_masters_files_AllDatabase.jpg', 0, 'attachment', 'image/jpeg', 0),
(93, 1, '2011-03-20 07:36:00', '2011-03-20 07:36:00', '<span style="color: #0000ff;"><strong>I. VẤN ĐỀ ĐẶT RA</strong></span>\n<ul>\n <li>Bạn quản trị 1 máy chủ SQL Server với gần chục Database đang họat động. Làm thế nào bạn nhanh chóng biết được mỗi database đã sử dụng bao nhiêu không gian đĩa cứng.</li>\n <li>Nếu không làm công việc này thường xuyên, khi các database của bạn phát triển và chiếm hết dung lượng đĩa cứng, gây tắc nghẽn toàn bộ hệ thống, thì bạn sẽ chịu toàn bộ trách nhiệm.</li>\n</ul>\nCâu trả lời là dùng sys.master_files, chứa thông tin sử dụng đĩa cứng của các file database được lưu trong database Master. Hãy tự độn\n\n<strong><span style="color: #0000ff;">II. THỰC HÀNH</span></strong>\n\n<span style="color: #800000;">Đoạn script sau sẽ liệt kê tất cả các file của 1 database và kích cỡ của chúng trong hệ thống</span>.\n<p style="padding-left: 30px;">SELECT DB_NAME(database_id) AS Database_Name,</p>\n<p style="padding-left: 30px;">Name AS Logical_Name,</p>\n<p style="padding-left: 30px;">Physical_Name, (size*8)/1024 SizeMB</p>\n<p style="padding-left: 30px;">FROM sys.master_files</p>\n<p style="padding-left: 30px;">WHERE DB_NAME(database_id) = ''SeaFood''</p>\n<span style="color: #800000;">Nếu bạn muốn biết thông tin của tất cả Database, thì bỏ mệnh đề ‘WHERE’ đi.</span>\n\nTrong đó:\n\n<strong>Database_Name</strong>: tên của Database\n\n<strong>Logical_Name</strong>: tên của mỗi file trong database\n\n<strong>Physical_Name</strong>: đường dẫn vật lý nơi lưu trữ các file database\n\n<span style="color: #800000;"> Kết quả khi chạy trên SQL Server của tôi.</span>\n\n<a href="http://sqlvn.com/wp-content/uploads/sys_masters_files_AllDatabase.jpg"><img class="alignnone size-full wp-image-92" title="sys_masters_files_AllDatabase" src="http://sqlvn.com/wp-content/uploads/sys_masters_files_AllDatabase.jpg" alt="" width="645" height="409" /></a>\n<p style="text-align: right;">Quang Vinh\nmai.quangvinh@sqlvn.com</p>', 'Xem thông tin sử dụng đĩa cứng của tất cả các Database', '', 'inherit', 'open', 'open', '', '90-revision-2', '', '', '2011-03-20 07:36:00', '2011-03-20 07:36:00', '', 90, 'http://sqlvn.com/uncategorized/90-revision-2.html', 0, 'revision', '', 0),
(94, 1, '2011-09-03 03:37:46', '2011-09-03 03:37:46', '<span style="color: #0000ff;"><strong>I. VẤN ĐỀ ĐẶT RA</strong></span>\r\n<ul>\r\n <li>Bạn quản trị 1 máy chủ SQL Server với gần chục Database đang họat động. Làm thế nào bạn nhanh chóng biết được mỗi database đã sử dụng bao nhiêu không gian đĩa cứng.</li>\r\n <li>Nếu không làm công việc này thường xuyên, khi các database của bạn phát triển và chiếm hết dung lượng đĩa cứng, gây tắc nghẽn toàn bộ hệ thống, các ứng dụng con không thể kết nối đến máy chủ SQL Server, có lẽ bạn sẽ tự hỏi tại sao mình không ngăn chặn ngay từ đầu.</li>\r\n</ul>\r\nCâu trả lời là dùng sys.master_files, chứa thông tin sử dụng đĩa cứng của các file database được lưu trong database Master.\r\n\r\nHãy tự động kiểm tra và báo động kịp thời nếu các Database của bạn vượt quá dung lượng ổ cứng cho phép.<!--more-->\r\n\r\n<strong><span style="color: #0000ff;">II. THỰC HÀNH</span></strong>\r\n\r\n<span style="color: #800000;">Đoạn script sau sẽ liệt kê tất cả các file của 1 database và kích cỡ của chúng trong hệ thống</span>.\r\n\r\n[sql]\r\n\r\nSELECT DB_NAME(database_id) AS Database_Name,\r\n\r\nName AS Logical_Name,\r\n\r\nPhysical_Name, (size*8)/1024 SizeMB\r\n\r\nFROM &lt;strong&gt;sys.master_files&lt;/strong&gt;\r\n\r\nWHERE DB_NAME(database_id) = ''Tên Database''\r\n\r\n[/sql]\r\n\r\n<span style="color: #800000;">Nếu bạn muốn biết thông tin của tất cả Database, thì bỏ mệnh đề ‘WHERE’ đi.</span>\r\n\r\nTrong đó:\r\n\r\n<strong>Database_Name</strong>: tên của Database\r\n\r\n<strong>Logical_Name</strong>: tên của mỗi file trong database\r\n\r\n<strong>Physical_Name</strong>: đường dẫn vật lý nơi lưu trữ các file database\r\n\r\n<span style="color: #800000;"> Kết quả khi chạy trên SQL Server của tôi.</span>\r\n\r\n<img class="alignnone size-full wp-image-92" title="sys_masters_files_AllDatabase" src="http://sqlvn.com/wp-content/uploads/sys_masters_files_AllDatabase.jpg" alt="" width="645" height="409" />\r\n\r\nMuốn biết thêm thông tin về sys.master_files, bạn có thể tham khảo trên MSDN.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Kiểm soát tình trạng sử dụng đĩa cứng của Database với sys.master_files', '', 'inherit', 'open', 'open', '', '90-autosave', '', '', '2011-09-03 03:37:46', '2011-09-03 03:37:46', '', 90, 'http://sqlvn.com/uncategorized/90-autosave.html', 0, 'revision', '', 0),
(1008, 1, '2011-08-16 07:57:23', '2011-08-16 07:57:23', '<span style="color: #0000ff;"><strong>I. VẤN ĐỀ ĐẶT RA</strong></span>\r\n<ul>\r\n <li>Bạn quản trị 1 máy chủ SQL Server với gần chục Database đang họat động. Làm thế nào bạn nhanh chóng biết được mỗi database đã sử dụng bao nhiêu không gian đĩa cứng.</li>\r\n <li>Nếu không làm công việc này thường xuyên, khi các database của bạn phát triển và chiếm hết dung lượng đĩa cứng, gây tắc nghẽn toàn bộ hệ thống, các ứng dụng con không thể kết nối đến máy chủ SQL Server, có lẽ bạn sẽ tự hỏi tại sao mình không ngăn chặn ngay từ đầu.</li>\r\n</ul>\r\nCâu trả lời là dùng sys.master_files, chứa thông tin sử dụng đĩa cứng của các file database được lưu trong database Master.\r\n\r\nHãy tự động kiểm tra và báo động kịp thời nếu các Database của bạn vượt quá dung lượng ổ cứng cho phép.<!--more-->\r\n\r\n<strong><span style="color: #0000ff;">II. THỰC HÀNH</span></strong>\r\n\r\n<span style="color: #800000;">Đoạn script sau sẽ liệt kê tất cả các file của 1 database và kích cỡ của chúng trong hệ thống</span>.\r\n<p style="padding-left: 30px;">SELECT DB_NAME(database_id) AS Database_Name,</p>\r\n<p style="padding-left: 30px;">Name AS Logical_Name,</p>\r\n<p style="padding-left: 30px;">Physical_Name, (size*8)/1024 SizeMB</p>\r\n<p style="padding-left: 30px;">FROM <strong>sys.master_files</strong></p>\r\n<p style="padding-left: 30px;">WHERE DB_NAME(database_id) = ''Tên Database''</p>\r\n<span style="color: #800000;">Nếu bạn muốn biết thông tin của tất cả Database, thì bỏ mệnh đề ‘WHERE’ đi.</span>\r\n\r\nTrong đó:\r\n\r\n<strong>Database_Name</strong>: tên của Database\r\n\r\n<strong>Logical_Name</strong>: tên của mỗi file trong database\r\n\r\n<strong>Physical_Name</strong>: đường dẫn vật lý nơi lưu trữ các file database\r\n\r\n<span style="color: #800000;"> Kết quả khi chạy trên SQL Server của tôi.</span>\r\n\r\n<img class="alignnone size-full wp-image-92" title="sys_masters_files_AllDatabase" src="http://sqlvn.com/wp-content/uploads/sys_masters_files_AllDatabase.jpg" alt="" width="645" height="409" />\r\n\r\nMuốn biết thêm thông tin về sys.master_files, bạn có thể tham khảo trên MSDN.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Kiểm soát tình trạng sử dụng đĩa cứng của Database với sys.master_files', '', 'inherit', 'open', 'open', '', '90-revision-13', '', '', '2011-08-16 07:57:23', '2011-08-16 07:57:23', '', 90, 'http://sqlvn.com/uncategorized/90-revision-13.html', 0, 'revision', '', 0),
(95, 1, '2011-03-20 07:36:31', '2011-03-20 07:36:31', '<span style="color: #0000ff;"><strong>I. VẤN ĐỀ ĐẶT RA</strong></span>\r\n<ul>\r\n <li>Bạn quản trị 1 máy chủ SQL Server với gần chục Database đang họat động. Làm thế nào bạn nhanh chóng biết được mỗi database đã sử dụng bao nhiêu không gian đĩa cứng.</li>\r\n <li>Nếu không làm công việc này thường xuyên, khi các database của bạn phát triển và chiếm hết dung lượng đĩa cứng, gây tắc nghẽn toàn bộ hệ thống, thì bạn sẽ chịu toàn bộ trách nhiệm.</li>\r\n</ul>\r\nCâu trả lời là dùng sys.master_files, chứa thông tin sử dụng đĩa cứng của các file database được lưu trong database Master.\r\n\r\nHãy tự động kiểm tra và báo động kịp thời nếu các Database của bạn vượt quá dung lượng ổ cứng cho phép.\r\n\r\n<strong><span style="color: #0000ff;">II. THỰC HÀNH</span></strong>\r\n\r\n<span style="color: #800000;">Đoạn script sau sẽ liệt kê tất cả các file của 1 database và kích cỡ của chúng trong hệ thống</span>.\r\n<p style="padding-left: 30px;">SELECT DB_NAME(database_id) AS Database_Name,</p>\r\n<p style="padding-left: 30px;">Name AS Logical_Name,</p>\r\n<p style="padding-left: 30px;">Physical_Name, (size*8)/1024 SizeMB</p>\r\n<p style="padding-left: 30px;">FROM sys.master_files</p>\r\n<p style="padding-left: 30px;">WHERE DB_NAME(database_id) = ''SeaFood''</p>\r\n<span style="color: #800000;">Nếu bạn muốn biết thông tin của tất cả Database, thì bỏ mệnh đề ‘WHERE’ đi.</span>\r\n\r\nTrong đó:\r\n\r\n<strong>Database_Name</strong>: tên của Database\r\n\r\n<strong>Logical_Name</strong>: tên của mỗi file trong database\r\n\r\n<strong>Physical_Name</strong>: đường dẫn vật lý nơi lưu trữ các file database\r\n\r\n<span style="color: #800000;"> Kết quả khi chạy trên SQL Server của tôi.</span>\r\n\r\n<a href="http://sqlvn.com/wp-content/uploads/sys_masters_files_AllDatabase.jpg"><img class="alignnone size-full wp-image-92" title="sys_masters_files_AllDatabase" src="http://sqlvn.com/wp-content/uploads/sys_masters_files_AllDatabase.jpg" alt="" width="645" height="409" /></a>\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', 'Xem thông tin sử dụng đĩa cứng của tất cả các Database', '', 'inherit', 'open', 'open', '', '90-revision-3', '', '', '2011-03-20 07:36:31', '2011-03-20 07:36:31', '', 90, 'http://sqlvn.com/uncategorized/90-revision-3.html', 0, 'revision', '', 0),
(96, 1, '2011-03-20 07:40:24', '2011-03-20 07:40:24', '<span style="color: #0000ff;"><strong>I. VẤN ĐỀ ĐẶT RA</strong></span>\r\n<ul>\r\n <li>Bạn quản trị 1 máy chủ SQL Server với gần chục Database đang họat động. Làm thế nào bạn nhanh chóng biết được mỗi database đã sử dụng bao nhiêu không gian đĩa cứng.</li>\r\n <li>Nếu không làm công việc này thường xuyên, khi các database của bạn phát triển và chiếm hết dung lượng đĩa cứng, gây tắc nghẽn toàn bộ hệ thống, thì bạn sẽ chịu toàn bộ trách nhiệm.</li>\r\n</ul>\r\nCâu trả lời là dùng sys.master_files, chứa thông tin sử dụng đĩa cứng của các file database được lưu trong database Master.\r\n\r\nHãy tự động kiểm tra và báo động kịp thời nếu các Database của bạn vượt quá dung lượng ổ cứng cho phép.\r\n\r\n<strong><span style="color: #0000ff;">II. THỰC HÀNH</span></strong>\r\n\r\n<span style="color: #800000;">Đoạn script sau sẽ liệt kê tất cả các file của 1 database và kích cỡ của chúng trong hệ thống</span>.\r\n<p style="padding-left: 30px;">SELECT DB_NAME(database_id) AS Database_Name,</p>\r\n<p style="padding-left: 30px;">Name AS Logical_Name,</p>\r\n<p style="padding-left: 30px;">Physical_Name, (size*8)/1024 SizeMB</p>\r\n<p style="padding-left: 30px;">FROM <strong>sys.master_files</strong></p>\r\n<p style="padding-left: 30px;">WHERE DB_NAME(database_id) = ''SeaFood''</p>\r\n<span style="color: #800000;">Nếu bạn muốn biết thông tin của tất cả Database, thì bỏ mệnh đề ‘WHERE’ đi.</span>\r\n\r\nTrong đó:\r\n\r\n<strong>Database_Name</strong>: tên của Database\r\n\r\n<strong>Logical_Name</strong>: tên của mỗi file trong database\r\n\r\n<strong>Physical_Name</strong>: đường dẫn vật lý nơi lưu trữ các file database\r\n\r\n<span style="color: #800000;"> Kết quả khi chạy trên SQL Server của tôi.</span>\r\n\r\n<a href="http://sqlvn.com/wp-content/uploads/sys_masters_files_AllDatabase.jpg"><img class="alignnone size-full wp-image-92" title="sys_masters_files_AllDatabase" src="http://sqlvn.com/wp-content/uploads/sys_masters_files_AllDatabase.jpg" alt="" width="645" height="409" /></a>\r\n\r\nMuốn biết thêm thông tin về sys.master_files, bạn có thể tham khảo trên MSDN.\r\n<p style="text-align: right;">Quang Vinh\r\nmai.quangvinh@sqlvn.com</p>', '', '', 'inherit', 'open', 'open', '', '90-revision-4', '', '', '2011-03-20 07:40:24', '2011-03-20 07:40:24', '', 90, 'http://sqlvn.com/uncategorized/90-revision-4.html', 0, 'revision', '', 0);

0 comments:

Post a Comment

 
Toggle Footer