powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сколько максимум памяти может отожрать SQL Server Express?
25 сообщений из 40, страница 1 из 2
Сколько максимум памяти может отожрать SQL Server Express?
    #39588283
гогол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем, привет.

Просвятите плиз.


Вроде у него 1.8 Гб + еще на что-то отжирается. Но вот на что, не пойму.

И где предел его прожерливости?
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588291
гогол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ни кто не знает?
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588293
AlanDenton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В справке все написано. До 2016 SP1 был 1Гб ОЗУ. Начиная с 2016 SP1+ зависимости от сценариев 1410 Мб
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588295
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
гогол,
Microsoft знает: " Limitations : Microsoft SQL Server Express supports 1 physical processor, 1 GB memory, and 10 GB storage"
https://www.microsoft.com/en-us/download/details.aspx?id=55994
(раздел system requirements)
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588298
гогол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlanDentonВ справке все написано. До 2016 SP1 был 1Гб ОЗУ. Начиная с 2016 SP1+ зависимости от сценариев 1410 Мб


ест больше
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588301
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xenix,

Это ограничение на buffer pool
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588304
гогол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKxenix,

Это ограничение на buffer pool


Да.

А на что еще он расходует память?

И сколько он может максимум отъесть?



Сейчас 5.5 Гб ест, судя по диспетчеру задач.
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588309
гогол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
perfmon для процесса sqlservr это подтверждает.
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588310
гогол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гоголperfmon для процесса sqlservr это подтверждает.

working set
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588312
гогол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlanDentonВ справке все написано. До 2016 SP1 был 1Гб ОЗУ. Начиная с 2016 SP1+ зависимости от сценариев 1410 Мб

но ест намного больше.
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588317
гогол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запросом мож можно посмотреть на что память расходуется?
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588323
гогол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
Microsoft SQL Server 2012 - 11.0.5343.0 (X64) 
	May  4 2015 19:11:32 
	Copyright (c) Microsoft Corporation
	Express Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: )
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588332
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гогол,

горшочек, не вари! Миллионы ответов как посмотреть запросом память
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588403
гогол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKгогол,

горшочек, не вари! Миллионы ответов как посмотреть запросом память


Не нашел и одного нормального скрипта, а миллион и подавно
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588408
гогол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще, обнаружил что в настройка хсервера стоит 10Гб максимальная память.

Разве экспрес не игнорирует эту настройку, если она больше 1Гб ?
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588438
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гоголTaPaKxenix,

Это ограничение на buffer pool


Да.

А на что еще он расходует память?

И сколько он может максимум отъесть?



Сейчас 5.5 Гб ест, судя по диспетчеру задач.
Смотреть нужно не в диспетчер задач. Для начала кошерной утилитой от Марка Руссиновича (надежный проверенный товарищ, сейчас CTO of Microsoft Azure) прямо с сайта Microsoft .
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588546
гогол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andy_OLAPгоголпропущено...



Да.

А на что еще он расходует память?

И сколько он может максимум отъесть?



Сейчас 5.5 Гб ест, судя по диспетчеру задач.
Смотреть нужно не в диспетчер задач. Для начала кошерной утилитой от Марка Руссиновича (надежный проверенный товарищ, сейчас CTO of Microsoft Azure) прямо с сайта Microsoft .
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588547
гогол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как так? о_О
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39588558
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гогол,

запустите под админской учеткой из командной строки, заменив ваш_сервер на соответствующее значение (хост):
Код: plaintext
sqlcmd -L | find /I "ваш_сервер"
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39590838
гогол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradгогол,

запустите под админской учеткой из командной строки, заменив ваш_сервер на соответствующее значение (хост):
Код: plaintext
sqlcmd -L | find /I "ваш_сервер"



Код: sql
1.
2.
3.
4.
5.
C:\Users\igogol>sqlcmd -L

Servers:
    ;UID:Login ID=?;PWD:Password=?;Trusted_Connection:Use Integrated Security=?;
*APP:AppName=?;*WSID:WorkStation ID=?;
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39590839
гогол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже почти 8 Гб отъел SQL Server Express....
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39590843
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гоголУже почти 8 Гб отъел SQL Server Express....

Тихо, а то майкрософт исправит и экспресс станет совсем экспрессом
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39590856
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупингоголУже почти 8 Гб отъел SQL Server Express....

Тихо, а то майкрософт исправит и экспресс станет совсем экспрессом
Все хорошо. Никто ничего не будет исправлять, не нужно паники и нервных потрясений :)

Автор темы вероятно не до конца понял прочитанное на иностранном языке "Starting with SQL Server 2012, these memory limits are enforced only for the database cache (buffer pool). The rest of the caches in the SQL Server memory manager can use much more memory than is specified by these edition limits. For example, a SQL Server 2012 Express edition can use only a maximum size of 1.4 GB for its database cache. Other caches (such as the procedure cache, the metadata cache, and so on) can consume memory up to the size specified by the "max server memory" configuration" из официальной документации .

Кэш процедурный растет - а он не смотрит по профайлеру события нужные.
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39590859
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гоголИ где предел его прожерливости?
Для Standard версии Windows примерно 32 Гб оперативной памяти, для других версий другой предел.
Сложите наличную оперативную плюс размеры файлов подкачки (если они фиксированные) и вычтите жестко закрепленные страницы ядра и буферных кэшей.
В общем, ему есть куда расти...
...
Рейтинг: 0 / 0
Сколько максимум памяти может отожрать SQL Server Express?
    #39590869
архивариус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
миллион первый скрипт из инета, попробуйте, раз других не нашли
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
/* Generated in SQL Explorer v.1.6.3.22869 */
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET LOCK_TIMEOUT 10000

DECLARE @ServiceName NVARCHAR(100)
SET @ServiceName = CASE WHEN @@SERVICENAME = 'MSSQLSERVER'
                            THEN 'SQLServer:'
                        ELSE 'MSSQL$' + @@SERVICENAME + ':'
                        END

DECLARE @Perf TABLE (object_name nvarchar(20), counter_name nvarchar(128), instance_name nvarchar(128), cntr_value BIGINT, formatted_value NUMERIC(20, 2), shortname NVARCHAR(20))
INSERT INTO @Perf(object_name, counter_name, instance_name, cntr_value, formatted_value, shortname)
SELECT 
  CASE 
    WHEN CHARINDEX ('Memory Manager', object_name)> 0 THEN 'Memory Manager'
    WHEN CHARINDEX ('Buffer Manager', object_name)> 0 THEN 'Buffer Manager'
    WHEN CHARINDEX ('Plan Cache', object_name)> 0 THEN 'Plan Cache'
    WHEN CHARINDEX ('Buffer Node', object_name)> 0 THEN 'Buffer Node' -- 2008
    WHEN CHARINDEX ('Memory Node', object_name)> 0 THEN 'Memory Node' -- 2012
    WHEN CHARINDEX ('Cursor', object_name)> 0 THEN 'Cursor'
    ELSE NULL 
  END AS object_name,
  CAST(RTRIM(counter_name) AS NVARCHAR(100)) AS counter_name, 
  RTRIM(instance_name) AS instance_name, 
  cntr_value,
  CAST(NULL AS DECIMAL(20,2)) AS formatted_value,
  SUBSTRING(counter_name,  1, PATINDEX('% %', counter_name)) shortname
FROM sys.dm_os_performance_counters 
WHERE (object_name LIKE @ServiceName + 'Buffer Node%'     -- LIKE is faster than =. I have no idea why
    OR object_name LIKE @ServiceName + 'Buffer Manager%' 
    OR object_name LIKE @ServiceName + 'Memory Node%' 
    OR object_name LIKE @ServiceName + 'Plan Cache%')
  AND (counter_name LIKE '%pages %' 
    OR counter_name LIKE '%Node Memory (KB)%'
    OR counter_name = 'Page life expectancy' 
    )
    OR  (object_name = @ServiceName + 'Memory Manager'
        AND counter_name IN ('Granted Workspace Memory (KB)', 'Maximum Workspace Memory (KB)',
                                    'Memory Grants Outstanding',     'Memory Grants Pending',
                                    'Target Server Memory (KB)',     'Total Server Memory (KB)',
                                    'Connection Memory (KB)',        'Lock Memory (KB)',
                                    'Optimizer Memory (KB)',         'SQL Cache Memory (KB)',
                                    -- for 2012
                                    'Free Memory (KB)',              'Reserved Server Memory (KB)',
                                    'Database Cache Memory (KB)',    'Stolen Server Memory (KB)')
      )
    OR (object_name LIKE @ServiceName + 'Cursor Manager by Type%'
      AND counter_name = 'Cursor memory usage'
      AND instance_name = '_Total'
      )

-- Add unit to 'Cursor memory usage'
UPDATE @Perf
SET counter_name = counter_name + ' (KB)'
WHERE counter_name = 'Cursor memory usage' 

-- Convert values from pages and KB to MB and rename counters accordingly
UPDATE @Perf
SET 
  counter_name = REPLACE(REPLACE(REPLACE(counter_name, ' pages', ''), ' (KB)', ''), ' (MB)', ''), 
  formatted_value = 
  CASE 
    WHEN counter_name LIKE '%pages' THEN cntr_value/128. 
    WHEN counter_name LIKE '%(KB)' THEN cntr_value/1024. 
    ELSE cntr_value
  END

-- Delete some pre 2012 counters for 2012 in order to remove duplicates
DELETE P2008
FROM @Perf P2008
INNER JOIN @Perf P2012 ON REPLACE(P2008.object_name, 'Buffer', 'Memory') = P2012.object_name AND P2008.shortname = P2012.shortname
WHERE P2008.object_name IN ('Buffer Manager', 'Buffer Node')

-- Update counter/object names so they look like in 2012
UPDATE PC
SET 
  object_name = REPLACE(object_name, 'Buffer', 'Memory'),
  counter_name = ISNULL(M.NewName, counter_name)  
FROM @Perf PC
  LEFT JOIN
  (
    SELECT 'Free' AS OldName, 'Free Memory' AS NewName UNION ALL
    SELECT 'Database', 'Database Cache Memory' UNION ALL
    SELECT 'Stolen', 'Stolen Server Memory' UNION ALL
    SELECT 'Reserved', 'Reserved Server Memory' UNION ALL
    SELECT 'Foreign', 'Foreign Node Memory'
  ) M ON M.OldName = PC.counter_name
  AND NewName NOT IN (SELECT counter_name FROM @Perf WHERE object_name = 'Memory Manager') 
WHERE object_name IN ('Buffer Manager', 'Buffer Node')


-- Build Memory Tree
DECLARE @MemTree TABLE (Id int, ParentId int, counter_name nvarchar(128), formatted_value NUMERIC(20, 2), shortname NVARCHAR(20))

-- Level 5
INSERT @MemTree(Id, ParentId, counter_name, formatted_value, shortname)
SELECT
  Id = 1226,
  ParentId = 1225,
  instance_name as counter_name, 
  formatted_value,
  shortname
FROM @Perf
WHERE object_name = 'Plan Cache' 
  AND counter_name IN ('Cache')
  AND instance_name <> '_Total'

-- Level 4
INSERT @MemTree(Id, ParentId, counter_name, formatted_value, shortname)
SELECT
  Id = 1225,
  ParentId = 1220,
  'Plan ' + counter_name as counter_name, 
  formatted_value,
  shortname
FROM @Perf
WHERE object_name = 'Plan Cache' 
  AND counter_name IN ('Cache')
  AND instance_name = '_Total'

UNION ALL

SELECT
  Id = 1222,
  ParentId = 1220,
  counter_name, 
  formatted_value,
  shortname
FROM @Perf
WHERE object_name = 'Cursor'
  OR (object_name = 'Memory Manager' AND shortname IN ('Connection', 'Lock', 'Optimizer', 'SQL')) 

UNION ALL

SELECT
  Id = 1112,
  ParentId = 1110,
  counter_name, 
  formatted_value,
  shortname
FROM @Perf
WHERE object_name = 'Memory Manager' 
  AND shortname IN ('Reserved')
UNION ALL
SELECT
  Id = P.ParentID + 1,
  ParentID = P.ParentID,
  'Used Workspace Memory' AS counter_name,
  SUM(used_memory_kb)/1024. as formatted_value,
  NULL AS shortname
FROM sys.dm_exec_query_resource_semaphores 
  CROSS JOIN (SELECT 1220 AS ParentID UNION ALL SELECT 1110) P
GROUP BY P.ParentID

-- Level 3
INSERT @MemTree(Id, ParentId, counter_name, formatted_value, shortname)
SELECT
  Id = CASE counter_name 
           WHEN 'Granted Workspace Memory' THEN 1110 
           WHEN 'Stolen Server Memory' THEN 1220 
           ELSE 1210
         END,
  ParentId = CASE counter_name 
               WHEN 'Granted Workspace Memory' THEN 1100 
               ELSE 1200 
             END,
  counter_name, 
  formatted_value,
  shortname
FROM @Perf
WHERE object_name = 'Memory Manager' 
  AND counter_name IN ('Stolen Server Memory', 'Database Cache Memory', 'Free Memory', 'Granted Workspace Memory')

-- Level 2
INSERT @MemTree(Id, ParentId, counter_name, formatted_value, shortname)
SELECT
  Id = CASE WHEN counter_name = 'Maximum Workspace Memory' THEN 1100 ELSE 1200 END,
  ParentId = 1000,
  counter_name, 
  formatted_value,
  shortname
FROM @Perf
WHERE object_name = 'Memory Manager' AND 
  counter_name IN ('Total Server Memory', 'Maximum Workspace Memory') 
UNION ALL
SELECT 
  Id = 1150,
  ParentId = 1000,
  counter_name = 'Foreign Node Memory', 
  formatted_value = SUM(formatted_value),
  shortname = 'Foreign'
FROM @Perf
WHERE object_name = 'Memory Node' AND 
  counter_name IN ('Foreign Node Memory')
HAVING SUM(formatted_value) > 0

-- Level 1
INSERT @MemTree(Id, ParentId, counter_name, formatted_value, shortname)
SELECT 
  Id = 1000,
  ParentId = NULL,
  counter_name, 
  formatted_value,
  shortname
FROM @Perf
WHERE object_name = 'Memory Manager' AND 
  counter_name IN ('Target Server Memory')

-- Level 4 -- 'Other Stolen Server Memory' = 'Stolen Server Memory' - SUM(Children of 'Stolen Server Memory')
INSERT @MemTree(Id, ParentId, counter_name, formatted_value, shortname)
SELECT
  Id = 1222,
  ParentId = 1220,
  counter_name = '<Other Memory Clerks>', 
  formatted_value = (SELECT SSM.formatted_value FROM @MemTree SSM WHERE Id = 1220) - SUM(formatted_value),
  shortname = 'Other Stolen'
FROM @MemTree 
WHERE ParentId = 1220

-- Results:

-- PLE and Memory Grants
SELECT
    [Counter Name] = P.counter_name + ISNULL(' (Node: ' + NULLIF(P.instance_name, '') + ')', ''), 
    cntr_value as Value,
    RecommendedMinimum = 
        CASE 
            WHEN P.counter_name = 'Page life expectancy' AND R.Value <= 300 -- no less than 300
                THEN 300
            WHEN P.counter_name = 'Page life expectancy' AND R.Value > 300 
                THEN R.Value
            ELSE NULL 
        END
FROM @Perf P
LEFT JOIN -- Recommended PLE calculations
    (
        SELECT 
            object_name, 
            counter_name, 
            instance_name, 
            CEILING(formatted_value/4096.*5) * 60 AS Value -- 300 per every 4GB of Buffer Pool memory or around 60 seconds (1 minute) per every 819MB
        FROM @Perf PD
        WHERE counter_name = 'Database Cache Memory'
    ) R ON R.object_name = P.object_name 
       AND R.instance_name = P.instance_name
WHERE 
  (P.object_name = 'Memory Manager' 
  AND P.counter_name IN ('Memory Grants Outstanding', 'Memory Grants Pending', 'Page life expectancy')
  )
    OR -- For NUMA
  (
    P.object_name = 'Memory Node' AND P.counter_name = 'Page life expectancy'
    AND (
        SELECT COUNT(DISTINCT instance_name)
        FROM @Perf 
        WHERE object_name = 'Memory Node'
    ) > 1
  )
ORDER BY P.counter_name DESC, P.instance_name

-- Get physical memory
-- You can also extract this information from sys.dm_os_sys_info but the column names have changed starting from 2012
IF OBJECT_ID('tempdb..#msver') IS NOT NULL DROP TABLE #msver
CREATE TABLE #msver(ID int, Name  sysname, Internal_Value int, Value nvarchar(512))
INSERT #msver EXEC master.dbo.xp_msver 'PhysicalMemory'

-- Physical memory, config parameters and Target memory
SELECT 
  min_server_mb = (SELECT CAST(value_in_use AS DECIMAL(20, 2)) FROM sys.configurations WHERE name = 'min server memory (MB)'),
  max_server_mb = (SELECT CAST(value_in_use AS DECIMAL(20, 2)) FROM sys.configurations WHERE name = 'max server memory (MB)'),
  target_mb = (SELECT formatted_value FROM @Perf WHERE object_name = 'Memory Manager' AND counter_name IN ('Target Server Memory')),
  physical_mb = CAST(Internal_Value AS DECIMAL(20, 2))
FROM #msver

-- Memory tree
;WITH CTE
AS
(
SELECT 0 as lvl, counter_name, formatted_value, Id, NULL AS ParentId, shortname, formatted_value as TargetServerMemory, CAST(NULL AS DECIMAL(20,4)) As Perc, CAST(NULL AS DECIMAL(20,4)) As PercOfTarget
FROM @MemTree
WHERE ParentId IS NULL
UNION ALL
SELECT CTE.lvl+1,
  CAST(REPLICATE(' ', 6*(CTE.lvl)) + NCHAR(124) + REPLICATE(NCHAR(183), 3) + MT.counter_name AS NVARCHAR(128)), 
  MT.formatted_value, MT.Id, MT.ParentId, MT.shortname, CTE.TargetServerMemory,
  CAST(ISNULL(1.0*MT.formatted_value/NULLIF(CTE.formatted_value, 0),0) AS DECIMAL(20,4)) AS Perc,
  CAST(ISNULL(1.0*MT.formatted_value/NULLIF(CTE.TargetServerMemory, 0),0) AS DECIMAL(20,4)) AS PercOfTarget
FROM @MemTree MT
  INNER JOIN CTE ON MT.ParentId = CTE.ID
)
SELECT 
  counter_name AS [Counter Name], CASE WHEN formatted_value > 0 THEN formatted_value ELSE NULL END AS [Memory MB], Perc AS [% of Parent], CASE WHEN lvl >= 2 THEN PercOfTarget ELSE NULL END AS [% of Target]
FROM CTE
ORDER BY ISNULL(ID, 10000), formatted_value DESC

...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сколько максимум памяти может отожрать SQL Server Express?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]