BETA
Aby się zalogować, najpiew wybierz portal.
Aby się zarejestrować, najpiew wybierz portal.
Podaj słowa kluczowe
Słowa kluczowe muszą mieć co najmniej 3 sąsiadujące znaki alfanumeryczne
Pole zawiera niedozwolone znaki
lechuCC
lechuCC
36 pkt.
Poczatkujacy

 
0


Cześć,
mam następujące pytanie dotyczące sqla 2008 express.
 
select @@Version
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)   Apr  2 2010 15:48:46   Copyright (c) Microsoft Corporation  Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: )
 
Jakie są dla niego ograniczenia sprzętowe? Znalazłem informację, że dla sqla 2008 express są takie jak dla 2005 express:
1 CPU socket
1 GB memory
4 GB of user data per database
następnie w wersji R2 zwiększyli rozmiar bazy z 4gb do 10gb, ale co z RAMem?
Wszędzie jest informacja o tym, że max dla niego to 1GB, ale właśnie widzę, że u mnie zużywa 1,5GB, więc jak z tym limitem? jest jakiś czy nie?
 
z góry dzięki
 



Liczba postów:

Krzysztof Stachyra Ekspert WSS
Krzysztof Stachyra
1577 pkt.
Guru
 
0


:) pytanie czym zmierzyłeś ten ram ? jak za pomocą Task managera to od razu możesz odpowiedzieć sobie na pytanie, że źle to wygląda;)
 
Limity na sql 2008 r2 co do możliwości sprzętowych (poza rozmiarem bazy nie uległy zmianie) do pomiaru pamięci służy performance monitor i liczniki
 
SQL Server memory manager: Total server memory (KB)
SQL Server memory manager: Target server memory (KB)--Pozdrawiam,
Krzysiek Stachyra

Pozdrawiam,

Krzysiek Stachyra

PLSSUG

lechuCC
lechuCC
36 pkt.
Poczatkujacy
 
0


obydwa liczniki pokazują to samo:
1,443,840 KB we wszystkich polach (last,average,minimum,maximum), co daje nam 1410 MB, czyli ciągle więcej niż 1 GB. Wynik taskmgr jest więc bardzo zbliżony
 
pozdrawiam,
 
 

Krzysztof Stachyra Ekspert WSS
Krzysztof Stachyra
1577 pkt.
Guru
 
0


ograniczenie 1 GB, są tylko do Buffer pool więc u Ciebie do tego dochodzą jeszcze pewnie jakieś internalsowe pule, żeby to zbadać, trzeba by juz odpytać DMV i zobaczyć ile czego faktycznie siedzi i gdzie--Pozdrawiam,
Krzysiek Stachyra

Pozdrawiam,

Krzysiek Stachyra

PLSSUG

Paweł Potasiński Microsoft
Paweł Potasiński
7713 pkt.
Guru
 
0


Limit 1GB dotyczy bufora danych. Pozostałe obszary pamięci nie są ograniczone. Sprawdź, co zwraca DBCC MEMORYSTATUS - szukaj w wynikach kolumny "Buffer Pool" i wierszy, gdzie wartość tej kolumny jest Committed i Target. W tych wierszach znajdziesz ilości stron, które SQL Server chce (Target) zająć na bufor danych i ile już zajął (Committed). Te ilości pomnóż przez 8 (tyle kilobajtów ma strona) i podziel przez 1024 (żeby wynik był w megabajtach).
 
EDYCJA: Ewentualnie tak, jak napisał Krzysiek, DMV w ręce i liczymy. Poczytaj na moim blogu, jak oglądać, co siedzi w buforze:
http://sqlgeek.pl/2010/07/19/sql-server-ile-czego-w-buforze-danych/
--
Pozdrawiam,Paweł Potasiński, SQL Server MVP { Rozwiązałem Twój problem? Kliknij Rozwiązanie. Pomogłem Ci? kliknij Pomógł mi. }

Edytowano 1 raz. Ostatnio 2010-08-23 13:47:28 przez C3PO.

Pozdrawiam,
Paweł Potasiński

lechuCC
lechuCC
36 pkt.
Poczatkujacy
 
0


pewnie macie rację, niestety DBCC MEMORYSTATUS dalej pokazuje jakieś głupoty, nie mam pozycji target mam za to VM Reserved i VM Committed podaną w KB
 
Reserved - 4116480
Committed - 1482880
 
są one w grupie MEMORYCLERK_SQLBUFFERPOOL, mam nadzieję, że właśnie o nią chodziło.
 
C3P0, Twój skrypt ze strony pokazujący ile pamięci zużywają poszczególne bazy, pokazuje bardzo prawdopodobny wynik 500MB, więc po prostu będę go używać zamiast tych wszystkich tooli MS.
 
Dzięki wielkie.
 

Paweł Potasiński Microsoft
Paweł Potasiński
7713 pkt.
Guru
 
0


Pamiętaj, że buffer cache to tylko jeden z obszarów pamięci, jakie zajmuje SQL Server. Do tego dochodzi wcale nie mało RAMu zajętego przez choćby plan cache. A w wyniku DBCC MEMORYSTATUS szukaj czegoś a la:
 



[Fragment wyniku DBCC MEMORYSTATUS]
Buffer Pool Value
---------------------------------------- -----------
Committed 1920000
Target 1920000




--
Pozdrawiam,Paweł Potasiński, SQL Server MVP { Rozwiązałem Twój problem? Kliknij Rozwiązanie. Pomogłem Ci? kliknij Pomógł mi. }

Edytowano 1 raz. Ostatnio 2010-08-23 14:09:13 przez C3PO.

Pozdrawiam,
Paweł Potasiński

lechuCC
lechuCC
36 pkt.
Poczatkujacy
 
0


gdzieś wcześniej mi to umknęło:
 
Buffer Pool                              Value---------------------------------------- -----------Committed                                180480Target                                   180480
 
 
180480 * 8 / 1024 = 1410MB
 
 

Paweł Potasiński Microsoft
Paweł Potasiński
7713 pkt.
Guru
 
0


Szczerze? Zaniemówiłem :-) Wezmę dzisiaj SQL Server 2008 R2 Express i pobawię się trochę. Albo czegoś nie umiem / nie rozumiem, albo limit wcale nie jest 1GB ;-)--Pozdrawiam,Paweł Potasiński, SQL Server MVP { Rozwiązałem Twój problem? Kliknij Rozwiązanie. Pomogłem Ci? kliknij Pomógł mi. }

Pozdrawiam,
Paweł Potasiński

Paweł Potasiński Microsoft
Paweł Potasiński
7713 pkt.
Guru
 
0


Ok, pobawiłem się. I wygląda na to, że wyżej SQL Server 2008 R2 Express Edition nie pójdzie z buforem. Ale ciekawe, że jest to faktycznie jakieś 1.4GB, a nie 1GB. Trzeba zapytać kogoś mądrzejszego, albo sprawdzić u źródeł (zapytać kogoś z MS).
 
PS. Ten MEMORYCLERK_SQLBUFFERPOOL też pokazuje wielkość cache'a i na dodatek nic nie trzeba liczyć. BTW, te wskaźniki z Perfmona też są właściwe - one powinny pokazywać ile SQL Server w danym momencie trzyma w buforze i ile zamierza.
--
Pozdrawiam,Paweł Potasiński, SQL Server MVP { Rozwiązałem Twój problem? Kliknij Rozwiązanie. Pomogłem Ci? kliknij Pomógł mi. }

Edytowano 1 raz. Ostatnio 2010-08-23 14:45:46 przez C3PO.

Pozdrawiam,
Paweł Potasiński

Paweł Potasiński Microsoft
Paweł Potasiński
7713 pkt.
Guru
 
0


Na potwierdzenie, wynik mojego zapytania sprawdzającego zawartość buffer cache'a:
 



[Wynik]
Database In buffer cache (MB)
-------------------- ---------------------------------------
Test 1361.75
tempdb 35.61
master 0.05
mssqlsystemresource 0.01





Dla uściślenia - zadałem po prostu zapytanie do dużej tabeli w bazie Test (ponad 200 tys. wierszy, każdy na osobnej stronie danych).--Pozdrawiam,Paweł Potasiński, SQL Server MVP { Rozwiązałem Twój problem? Kliknij Rozwiązanie. Pomogłem Ci? kliknij Pomógł mi. }

Pozdrawiam,
Paweł Potasiński

Marcin Szeliga Ekspert WSS
Marcin Szeliga
1834 pkt.
Guru
MVP
 
0


Puść jeszcze coś takiego:
SELECT QUOTENAME(OBJECT_SCHEMA_NAME(p.object_id)) + '.' +
QUOTENAME(OBJECT_NAME(p.object_id)) AS Object,
CONVERT(numeric(38,2),(8.0 / 1024) * COUNT(*)) AS [In buffer cache (MB)]
FROM sys.dm_os_buffer_descriptors AS d
INNER JOIN sys.allocation_units AS u
ON d.allocation_unit_id = u.allocation_unit_id
INNER JOIN sys.partitions AS p
ON (u.type IN (1,3) AND u.container_id = p.hobt_id)
OR (u.type = 2 AND u.container_id = p.partition_id)
WHERE d.database_id = DB_ID()
GROUP BY QUOTENAME(OBJECT_SCHEMA_NAME(p.object_id)) + '.' +
QUOTENAME(OBJECT_NAME(p.object_id))
ORDER BY 2 DESC;
Ale wygląda na to, że jak zsumujemy wyniki, to wyjdzie 1,4 GB--

---
Szelor
http://blog.sqlexpert.pl/
Ekspert @ SQLExpert.pl

lechuCC
lechuCC
36 pkt.
Poczatkujacy
 
0


Po zsumowaniu wszystkich baz wychodzi jakieś 0,6

Paweł Potasiński Microsoft
Paweł Potasiński
7713 pkt.
Guru
 
0


O, jakie ładne zapytanie ;-) Mi wyszło w moim teście to, co trzeba - ponad 1.3GB w buffer cache z jednej tabeli! Tam naprawdę jest limit 1.4GB! :-)--Pozdrawiam,Paweł Potasiński, SQL Server MVP { Rozwiązałem Twój problem? Kliknij Rozwiązanie. Pomogłem Ci? kliknij Pomógł mi. }

Pozdrawiam,
Paweł Potasiński

Paweł Potasiński Microsoft
Paweł Potasiński
7713 pkt.
Guru
 
0


Mały research i jego wyniki:
 
http://sqlgeek.pl/2010/08/23/pl-sql-server-limity-w-sql-server-2008-r2-express-edition/
 
Dzisiaj (bo już po północy) powtórzę test dotyczący RAM-u dla SQL Server 2008 Express Edition.--Pozdrawiam,Paweł Potasiński, SQL Server MVP { Rozwiązałem Twój problem? Kliknij Rozwiązanie. Pomogłem Ci? kliknij Pomógł mi. }

Pozdrawiam,
Paweł Potasiński

Udziel odpowiedzi

pkt.
Treść wpisu:

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.