Отличные вопросы, ты сейчас как раз упёрся в самый неочевидный момент TempDB, из- за которого очень многие думают, что «оно не работает». Спойлер: у тебя всё работает правильно, просто SQL Server так устроен. Сейчас разложу спокойно и по шагам.
1 ️⃣ Почему tempdb.mdf остался 75 ГБ, а tempdev* .ndf не растут
Коротко
👉 Это НОРМАЛЬНО.
👉 SQL Server НЕ перераспределяет существующие данные TempDB между файлами.
Чуть подробнее
TempDB — одно логическое пространство, разбитое на несколько физических файлов
SQL Server не делает “rebalance” уже занятых страниц
Всё, что уже было размещено в tempdb.mdf , там и остаётся
Новые аллокации ( новые временные таблицы, hash, sort, spills)
👉 начинают распределяться по всем файлам
Поэтому:
старый файл = большой
новые = маленькие
это не ошибка
2 ️⃣ Почему .ndf , а не .mdf
Очень важный момент 👇
.mdf — может быть только один ( primary data file)
.ndf — дополнительные data files
TempDB:
tempdb.mdf — главный файл
tempdev2.ndf , tempdev3.ndf , … — равноправные data files
👉 Для SQL Server нет разницы, .mdf или .ndf
👉 Latch распределяются одинаково
Это абсолютно правильная схема 👍
3 ️⃣ Почему SQL Server не начал сразу писать во все файлы
Потому что SQL Server использует механизм:
🔹 Proportional Fill
Он распределяет новые страницы пропорционально свободному месту.
Сейчас у тебя:
tempdb.mdf — 75 ГБ, свободного места МНОГО
tempdev* .ndf — по 1 ГБ
➡️ SQL думает:
«Ага, в mdf места больше — буду писать туда»
4 ️⃣ Как ЗАСТАВИТЬ TempDB работать равномерно ( ВАЖНО)
✅ ПРАВИЛО №1
ВСЕ data- файлы TempDB должны быть ОДИНАКОВОГО размера
Не «примерно», а реально одинакового.
🔧 Что нужно сделать правильно
Допустим:
Хочешь 8 файлов
Общий размер TempDB = 80 ГБ
👉 Делай так:
tempdb.mdf → 10 ГБ
tempdev2.ndf → 10 ГБ
…
tempdev8.ndf → 10 ГБ
🔧 Как исправить твою ситуацию
Шаг 1 . Уменьшить основной файл
USE tempdb;
GO
DBCC SHRINKFILE ( tempdev, 10240 ) ; -- 10 GB
GO
⚠️ Делай не в пиковое время
Шаг 2 . Увеличить остальные файлы до того же размера
ALTER DATABASE tempdb
MODIFY FILE ( NAME = tempdev2, SIZE = 10240MB) ,
( NAME = tempdev3, SIZE = 10240MB) ,
( NAME = tempdev4, SIZE = 10240MB) ,
( NAME = tempdev5, SIZE = 10240MB) ,
( NAME = tempdev6, SIZE = 10240MB) ,
( NAME = tempdev7, SIZE = 10240MB) ,
( NAME = tempdev8, SIZE = 10240MB) ;
GO
Шаг 3 . Одинаковый FILEGROWTH
ALTER DATABASE tempdb
MODIFY FILE ( NAME = tempdev, FILEGROWTH = 512MB) ,
( NAME = tempdev2, FILEGROWTH = 512MB) ,
( NAME = tempdev3, FILEGROWTH = 512MB) ,
( NAME = tempdev4, FILEGROWTH = 512MB) ,
( NAME = tempdev5, FILEGROWTH = 512MB) ,
( NAME = tempdev6, FILEGROWTH = 512MB) ,
( NAME = tempdev7, FILEGROWTH = 512MB) ,
( NAME = tempdev8, FILEGROWTH = 512MB) ;
GO
Шаг 4 . Перезапуск SQL Server
Это обязательно, чтобы всё стартовало «с чистого листа».
5 ️⃣ Как проверить, что TempDB реально стал работать равномерно
🔍 Проверка активности файлов
SELECT
name,
num_of_reads,
num_of_writes,
io_stall_read_ms,
io_stall_write_ms
FROM sys.dm_io_virtual_file_stats ( DB_ID( 'tempdb' ) , NULL ) v
JOIN tempdb.sys .database_files f
ON v.file_id = f.file_id ;
👉 Если всё хорошо:
read/ write примерно одинаковые
не только tempdb.mdf активен
6 ️⃣ Очень важный вывод ( ключевой момент)
❗ TempDB не чинит сам запрос
❗ TempDB снимает contention, когда запросы уже есть
Ты сделал правильный шаг, потому что:
1 С
временные таблицы
hash / group by
высокий PAGELATCH_EX
Без нескольких файлов TempDB любой сервер с 1 С рано или поздно упрётся.
7 ️⃣ Почему сейчас сервер «не тормозит», но запрос идёт часами
Потому что:
contention стало меньше
но план запроса всё ещё тяжёлый
это логическая нагрузка, а не инфраструктурная
Следующий шаг — execution plan и индексы InfoRg.
0J7RgtC70LjRh9C90YvQtSDQstC+0L/RgNC+0YHRiywg0YLRiyDRgdC10LnRh9Cw0YEg0LrQsNC6INGA0LDQtyDRg9C/0ZHRgNGB0Y8g0LIg0YHQsNC80YvQuSDQvdC10L7Rh9C10LLQuNC00L3Ri9C5INC80L7QvNC10L3RgiBUZW1wREIsINC40Lct0LfQsCDQutC+0YLQvtGA0L7Qs9C+INC+0YfQtdC90Ywg0LzQvdC+0LPQuNC1INC00YPQvNCw0Y7Rgiwg0YfRgtC+IMKr0L7QvdC+INC90LUg0YDQsNCx0L7RgtCw0LXRgsK7LiDQodC/0L7QudC70LXRgDog0YMg0YLQtdCx0Y8g0LLRgdGRINGA0LDQsdC+0YLQsNC10YIg0L/RgNCw0LLQuNC70YzQvdC+LCDQv9GA0L7RgdGC0L4gU1FMIFNlcnZlciDRgtCw0Log0YPRgdGC0YDQvtC10L0uINCh0LXQudGH0LDRgSDRgNCw0LfQu9C+0LbRgyDRgdC/0L7QutC+0LnQvdC+INC4INC/0L4g0YjQsNCz0LDQvC4KCjHvuI/ig6Mg0J/QvtGH0LXQvNGDIHRlbXBkYi5tZGYg0L7RgdGC0LDQu9GB0Y8gNzUg0JPQkSwg0LAgdGVtcGRldioubmRmINC90LUg0YDQsNGB0YLRg9GCCtCa0L7RgNC+0YLQutC+Cgrwn5GJINCt0YLQviDQndCe0KDQnNCQ0JvQrNCd0J4uCvCfkYkgU1FMIFNlcnZlciDQndCVINC/0LXRgNC10YDQsNGB0L/RgNC10LTQtdC70Y/QtdGCINGB0YPRidC10YHRgtCy0YPRjtGJ0LjQtSDQtNCw0L3QvdGL0LUgVGVtcERCINC80LXQttC00YMg0YTQsNC50LvQsNC80LguCgrQp9GD0YLRjCDQv9C+0LTRgNC+0LHQvdC10LUKClRlbXBEQiDigJQg0L7QtNC90L4g0LvQvtCz0LjRh9C10YHQutC+0LUg0L/RgNC+0YHRgtGA0LDQvdGB0YLQstC+LCDRgNCw0LfQsdC40YLQvtC1INC90LAg0L3QtdGB0LrQvtC70YzQutC+INGE0LjQt9C40YfQtdGB0LrQuNGFINGE0LDQudC70L7QsgoKU1FMIFNlcnZlciDQvdC1INC00LXQu9Cw0LXRgiDigJxyZWJhbGFuY2XigJ0g0YPQttC1INC30LDQvdGP0YLRi9GFINGB0YLRgNCw0L3QuNGGCgrQktGB0ZEsINGH0YLQviDRg9C20LUg0LHRi9C70L4g0YDQsNC30LzQtdGJ0LXQvdC+INCyIHRlbXBkYi5tZGYsINGC0LDQvCDQuCDQvtGB0YLQsNGR0YLRgdGPCgrQndC+0LLRi9C1INCw0LvQu9C+0LrQsNGG0LjQuCAo0L3QvtCy0YvQtSDQstGA0LXQvNC10L3QvdGL0LUg0YLQsNCx0LvQuNGG0YssIGhhc2gsIHNvcnQsIHNwaWxscykK8J+RiSDQvdCw0YfQuNC90LDRjtGCINGA0LDRgdC/0YDQtdC00LXQu9GP0YLRjNGB0Y8g0L/QviDQstGB0LXQvCDRhNCw0LnQu9Cw0LwKCtCf0L7RjdGC0L7QvNGDOgoK0YHRgtCw0YDRi9C5INGE0LDQudC7ID0g0LHQvtC70YzRiNC+0LkKCtC90L7QstGL0LUgPSDQvNCw0LvQtdC90YzQutC40LUKCtGN0YLQviDQvdC1INC+0YjQuNCx0LrQsAoKMu+4j+KDoyDQn9C+0YfQtdC80YMgLm5kZiwg0LAg0L3QtSAubWRmCgrQntGH0LXQvdGMINCy0LDQttC90YvQuSDQvNC+0LzQtdC90YIg8J+RhwoKLm1kZiDigJQg0LzQvtC20LXRgiDQsdGL0YLRjCDRgtC+0LvRjNC60L4g0L7QtNC40L0gKHByaW1hcnkgZGF0YSBmaWxlKQoKLm5kZiDigJQg0LTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvQtSBkYXRhIGZpbGVzCgpUZW1wREI6Cgp0ZW1wZGIubWRmIOKAlCDQs9C70LDQstC90YvQuSDRhNCw0LnQuwoKdGVtcGRldjIubmRmLCB0ZW1wZGV2My5uZGYsIOKApiDigJQg0YDQsNCy0L3QvtC/0YDQsNCy0L3Ri9C1IGRhdGEgZmlsZXMKCvCfkYkg0JTQu9GPIFNRTCBTZXJ2ZXIg0L3QtdGCINGA0LDQt9C90LjRhtGLLCAubWRmINC40LvQuCAubmRmCvCfkYkgTGF0Y2gg0YDQsNGB0L/RgNC10LTQtdC70Y/RjtGC0YHRjyDQvtC00LjQvdCw0LrQvtCy0L4KCtCt0YLQviDQsNCx0YHQvtC70Y7RgtC90L4g0L/RgNCw0LLQuNC70YzQvdCw0Y8g0YHRhdC10LzQsCDwn5GNCgoz77iP4oOjINCf0L7Rh9C10LzRgyBTUUwgU2VydmVyINC90LUg0L3QsNGH0LDQuyDRgdGA0LDQt9GDINC/0LjRgdCw0YLRjCDQstC+INCy0YHQtSDRhNCw0LnQu9GLCgrQn9C+0YLQvtC80YMg0YfRgtC+IFNRTCBTZXJ2ZXIg0LjRgdC/0L7Qu9GM0LfRg9C10YIg0LzQtdGF0LDQvdC40LfQvDoKCvCflLkgUHJvcG9ydGlvbmFsIEZpbGwKCtCe0L0g0YDQsNGB0L/RgNC10LTQtdC70Y/QtdGCINC90L7QstGL0LUg0YHRgtGA0LDQvdC40YbRiyDQv9GA0L7Qv9C+0YDRhtC40L7QvdCw0LvRjNC90L4g0YHQstC+0LHQvtC00L3QvtC80YMg0LzQtdGB0YLRgy4KCtCh0LXQudGH0LDRgSDRgyDRgtC10LHRjzoKCnRlbXBkYi5tZGYg4oCUIDc1INCT0JEsINGB0LLQvtCx0L7QtNC90L7Qs9C+INC80LXRgdGC0LAg0JzQndCe0JPQngoKdGVtcGRldioubmRmIOKAlCDQv9C+IDEg0JPQkQoK4p6h77iPIFNRTCDQtNGD0LzQsNC10YI6CgrCq9CQ0LPQsCwg0LIgbWRmINC80LXRgdGC0LAg0LHQvtC70YzRiNC1IOKAlCDQsdGD0LTRgyDQv9C40YHQsNGC0Ywg0YLRg9C00LDCuwoKNO+4j+KDoyDQmtCw0Log0JfQkNCh0KLQkNCS0JjQotCsIFRlbXBEQiDRgNCw0LHQvtGC0LDRgtGMINGA0LDQstC90L7QvNC10YDQvdC+ICjQktCQ0JbQndCeKQrinIUg0J/QoNCQ0JLQmNCb0J4g4oSWMQoK0JLQodCVIGRhdGEt0YTQsNC50LvRiyBUZW1wREIg0LTQvtC70LbQvdGLINCx0YvRgtGMINCe0JTQmNCd0JDQmtCe0JLQntCT0J4g0YDQsNC30LzQtdGA0LAKCtCd0LUgwqvQv9GA0LjQvNC10YDQvdC+wrssINCwINGA0LXQsNC70YzQvdC+INC+0LTQuNC90LDQutC+0LLQvtCz0L4uCgrwn5SnINCn0YLQviDQvdGD0LbQvdC+INGB0LTQtdC70LDRgtGMINC/0YDQsNCy0LjQu9GM0L3QvgoK0JTQvtC/0YPRgdGC0LjQvDoKCtCl0L7Rh9C10YjRjCA4INGE0LDQudC70L7QsgoK0J7QsdGJ0LjQuSDRgNCw0LfQvNC10YAgVGVtcERCID0gODAg0JPQkQoK8J+RiSDQlNC10LvQsNC5INGC0LDQujoKCnRlbXBkYi5tZGYg4oaSIDEwINCT0JEKCnRlbXBkZXYyLm5kZiDihpIgMTAg0JPQkQoK4oCmCgp0ZW1wZGV2OC5uZGYg4oaSIDEwINCT0JEKCvCflKcg0JrQsNC6INC40YHQv9GA0LDQstC40YLRjCDRgtCy0L7RjiDRgdC40YLRg9Cw0YbQuNGOCtCo0LDQsyAxLiDQo9C80LXQvdGM0YjQuNGC0Ywg0L7RgdC90L7QstC90L7QuSDRhNCw0LnQuwpVU0UgdGVtcGRiOwpHTwpEQkNDIFNIUklOS0ZJTEUgKHRlbXBkZXYsIDEwMjQwKTsgLS0gMTAgR0IKR08KCgrimqDvuI8g0JTQtdC70LDQuSDQvdC1INCyINC/0LjQutC+0LLQvtC1INCy0YDQtdC80Y8KCtCo0LDQsyAyLiDQo9Cy0LXQu9C40YfQuNGC0Ywg0L7RgdGC0LDQu9GM0L3Ri9C1INGE0LDQudC70Ysg0LTQviDRgtC+0LPQviDQttC1INGA0LDQt9C80LXRgNCwCkFMVEVSIERBVEFCQVNFIHRlbXBkYiAKTU9ESUZZIEZJTEUgKE5BTUUgPSB0ZW1wZGV2MiwgU0laRSA9IDEwMjQwTUIpLAogICAgICAgICAgICAoTkFNRSA9IHRlbXBkZXYzLCBTSVpFID0gMTAyNDBNQiksCiAgICAgICAgICAgIChOQU1FID0gdGVtcGRldjQsIFNJWkUgPSAxMDI0ME1CKSwKICAgICAgICAgICAgKE5BTUUgPSB0ZW1wZGV2NSwgU0laRSA9IDEwMjQwTUIpLAogICAgICAgICAgICAoTkFNRSA9IHRlbXBkZXY2LCBTSVpFID0gMTAyNDBNQiksCiAgICAgICAgICAgIChOQU1FID0gdGVtcGRldjcsIFNJWkUgPSAxMDI0ME1CKSwKICAgICAgICAgICAgKE5BTUUgPSB0ZW1wZGV2OCwgU0laRSA9IDEwMjQwTUIpOwpHTwoK0KjQsNCzIDMuINCe0LTQuNC90LDQutC+0LLRi9C5IEZJTEVHUk9XVEgKQUxURVIgREFUQUJBU0UgdGVtcGRiIApNT0RJRlkgRklMRSAoTkFNRSA9IHRlbXBkZXYsICBGSUxFR1JPV1RIID0gNTEyTUIpLAogICAgICAgICAgICAoTkFNRSA9IHRlbXBkZXYyLCBGSUxFR1JPV1RIID0gNTEyTUIpLAogICAgICAgICAgICAoTkFNRSA9IHRlbXBkZXYzLCBGSUxFR1JPV1RIID0gNTEyTUIpLAogICAgICAgICAgICAoTkFNRSA9IHRlbXBkZXY0LCBGSUxFR1JPV1RIID0gNTEyTUIpLAogICAgICAgICAgICAoTkFNRSA9IHRlbXBkZXY1LCBGSUxFR1JPV1RIID0gNTEyTUIpLAogICAgICAgICAgICAoTkFNRSA9IHRlbXBkZXY2LCBGSUxFR1JPV1RIID0gNTEyTUIpLAogICAgICAgICAgICAoTkFNRSA9IHRlbXBkZXY3LCBGSUxFR1JPV1RIID0gNTEyTUIpLAogICAgICAgICAgICAoTkFNRSA9IHRlbXBkZXY4LCBGSUxFR1JPV1RIID0gNTEyTUIpOwpHTwoK0KjQsNCzIDQuINCf0LXRgNC10LfQsNC/0YPRgdC6IFNRTCBTZXJ2ZXIKCtCt0YLQviDQvtCx0Y/Qt9Cw0YLQtdC70YzQvdC+LCDRh9GC0L7QsdGLINCy0YHRkSDRgdGC0LDRgNGC0L7QstCw0LvQviDCq9GBINGH0LjRgdGC0L7Qs9C+INC70LjRgdGC0LDCuy4KCjXvuI/ig6Mg0JrQsNC6INC/0YDQvtCy0LXRgNC40YLRjCwg0YfRgtC+IFRlbXBEQiDRgNC10LDQu9GM0L3QviDRgdGC0LDQuyDRgNCw0LHQvtGC0LDRgtGMINGA0LDQstC90L7QvNC10YDQvdC+CvCflI0g0J/RgNC+0LLQtdGA0LrQsCDQsNC60YLQuNCy0L3QvtGB0YLQuCDRhNCw0LnQu9C+0LIKU0VMRUNUIAogICAgbmFtZSwKICAgIG51bV9vZl9yZWFkcywKICAgIG51bV9vZl93cml0ZXMsCiAgICBpb19zdGFsbF9yZWFkX21zLAogICAgaW9fc3RhbGxfd3JpdGVfbXMKRlJPTSBzeXMuZG1faW9fdmlydHVhbF9maWxlX3N0YXRzKERCX0lEKCd0ZW1wZGInKSwgTlVMTCkgdgpKT0lOIHRlbXBkYi5zeXMuZGF0YWJhc2VfZmlsZXMgZgogICAgT04gdi5maWxlX2lkID0gZi5maWxlX2lkOwoKCvCfkYkg0JXRgdC70Lgg0LLRgdGRINGF0L7RgNC+0YjQvjoKCnJlYWQvd3JpdGUg0L/RgNC40LzQtdGA0L3QviDQvtC00LjQvdCw0LrQvtCy0YvQtQoK0L3QtSDRgtC+0LvRjNC60L4gdGVtcGRiLm1kZiDQsNC60YLQuNCy0LXQvQoKNu+4j+KDoyDQntGH0LXQvdGMINCy0LDQttC90YvQuSDQstGL0LLQvtC0ICjQutC70Y7Rh9C10LLQvtC5INC80L7QvNC10L3RgikKCuKdlyBUZW1wREIg0L3QtSDRh9C40L3QuNGCINGB0LDQvCDQt9Cw0L/RgNC+0YEK4p2XIFRlbXBEQiDRgdC90LjQvNCw0LXRgiBjb250ZW50aW9uLCDQutC+0LPQtNCwINC30LDQv9GA0L7RgdGLINGD0LbQtSDQtdGB0YLRjAoK0KLRiyDRgdC00LXQu9Cw0Lsg0L/RgNCw0LLQuNC70YzQvdGL0Lkg0YjQsNCzLCDQv9C+0YLQvtC80YMg0YfRgtC+OgoKMdChCgrQstGA0LXQvNC10L3QvdGL0LUg0YLQsNCx0LvQuNGG0YsKCmhhc2ggLyBncm91cCBieQoK0LLRi9GB0L7QutC40LkgUEFHRUxBVENIX0VYCgrQkdC10Lcg0L3QtdGB0LrQvtC70YzQutC40YUg0YTQsNC50LvQvtCyIFRlbXBEQiDQu9GO0LHQvtC5INGB0LXRgNCy0LXRgCDRgSAx0KEg0YDQsNC90L4g0LjQu9C4INC/0L7Qt9C00L3QviDRg9C/0YDRkdGC0YHRjy4KCjfvuI/ig6Mg0J/QvtGH0LXQvNGDINGB0LXQudGH0LDRgSDRgdC10YDQstC10YAgwqvQvdC1INGC0L7RgNC80L7Qt9C40YLCuywg0L3QviDQt9Cw0L/RgNC+0YEg0LjQtNGR0YIg0YfQsNGB0LDQvNC4CgrQn9C+0YLQvtC80YMg0YfRgtC+OgoKY29udGVudGlvbiDRgdGC0LDQu9C+INC80LXQvdGM0YjQtQoK0L3QviDQv9C70LDQvSDQt9Cw0L/RgNC+0YHQsCDQstGB0ZEg0LXRidGRINGC0Y/QttGR0LvRi9C5CgrRjdGC0L4g0LvQvtCz0LjRh9C10YHQutCw0Y8g0L3QsNCz0YDRg9C30LrQsCwg0LAg0L3QtSDQuNC90YTRgNCw0YHRgtGA0YPQutGC0YPRgNC90LDRjwoK0KHQu9C10LTRg9GO0YnQuNC5INGI0LDQsyDigJQgZXhlY3V0aW9uIHBsYW4g0Lgg0LjQvdC00LXQutGB0YsgSW5mb1JnLg==
compilation info
Main.java:1: error: class, interface, or enum expected
???????? ???????, ?? ?????? ??? ??? ?????? ? ????? ??????????? ?????? TempDB, ??-?? ???????? ????? ?????? ??????, ??? ???? ?? ?????????. ???????: ? ???? ??? ???????? ?????????, ?????? SQL Server ??? ???????. ?????? ??????? ???????? ? ?? ?????.
^
Main.java:1: error: illegal character: '\u00ab'
???????? ???????, ?? ?????? ??? ??? ?????? ? ????? ??????????? ?????? TempDB, ??-?? ???????? ????? ?????? ??????, ??? ???? ?? ?????????. ???????: ? ???? ??? ???????? ?????????, ?????? SQL Server ??? ???????. ?????? ??????? ???????? ? ?? ?????.
^
Main.java:1: error: illegal character: '\u00bb'
???????? ???????, ?? ?????? ??? ??? ?????? ? ????? ??????????? ?????? TempDB, ??-?? ???????? ????? ?????? ??????, ??? ???? ?? ?????????. ???????: ? ???? ??? ???????? ?????????, ?????? SQL Server ??? ???????. ?????? ??????? ???????? ? ?? ?????.
^
Main.java:3: error: illegal character: '\ufe0f'
1?? ?????? tempdb.mdf ??????? 75 ??, ? tempdev*.ndf ?? ??????
^
Main.java:3: error: illegal character: '\u20e3'
1?? ?????? tempdb.mdf ??????? 75 ??, ? tempdev*.ndf ?? ??????
^
Main.java:6: error: illegal character: '\ud83d\udc49'
? ??? ?????????.
^
Main.java:7: error: illegal character: '\ud83d\udc49'
? SQL Server ?? ???????????????? ???????????? ?????? TempDB ????? ???????.
^
Main.java:11: error: illegal character: '\u2014'
TempDB ? ???? ?????????? ????????????, ???????? ?? ????????? ?????????? ??????
^
Main.java:13: error: illegal character: '\u201c'
SQL Server ?? ?????? ?rebalance? ??? ??????? ???????
^
Main.java:13: error: illegal character: '\u201d'
SQL Server ?? ?????? ?rebalance? ??? ??????? ???????
^
Main.java:18: error: illegal character: '\ud83d\udc49'
? ???????? ?????????????? ?? ???? ??????
^
Main.java:28: error: illegal character: '\ufe0f'
2?? ?????? .ndf, ? ?? .mdf
^
Main.java:28: error: illegal character: '\u20e3'
2?? ?????? .ndf, ? ?? .mdf
^
Main.java:30: error: illegal character: '\ud83d\udc47'
????? ?????? ?????? ?
^
Main.java:32: error: illegal character: '\u2014'
.mdf ? ????? ???? ?????? ???? (primary data file)
^
Main.java:34: error: illegal character: '\u2014'
.ndf ? ?????????????? data files
^
Main.java:38: error: illegal character: '\u2014'
tempdb.mdf ? ??????? ????
^
Main.java:40: error: illegal character: '\u2026'
tempdev2.ndf, tempdev3.ndf, ? ? ???????????? data files
^
Main.java:40: error: illegal character: '\u2014'
tempdev2.ndf, tempdev3.ndf, ? ? ???????????? data files
^
Main.java:42: error: illegal character: '\ud83d\udc49'
? ??? SQL Server ??? ???????, .mdf ??? .ndf
^
Main.java:43: error: illegal character: '\ud83d\udc49'
? Latch ?????????????? ?????????
^
Main.java:45: error: illegal character: '\ud83d\udc4d'
??? ????????? ?????????? ????? ?
^
Main.java:47: error: illegal character: '\ufe0f'
3?? ?????? SQL Server ?? ????? ????? ?????? ?? ??? ?????
^
Main.java:47: error: illegal character: '\u20e3'
3?? ?????? SQL Server ?? ????? ????? ?????? ?? ??? ?????
^
Main.java:51: error: illegal character: '\ud83d\udd39'
? Proportional Fill
^
Main.java:57: error: illegal character: '\u2014'
tempdb.mdf ? 75 ??, ?????????? ????? ?????
^
Main.java:59: error: illegal character: '\u2014'
tempdev*.ndf ? ?? 1 ??
^
Main.java:61: error: illegal character: '\u27a1'
?? SQL ??????:
^
Main.java:61: error: illegal character: '\ufe0f'
?? SQL ??????:
^
Main.java:63: error: illegal character: '\u00ab'
????, ? mdf ????? ?????? ? ???? ?????? ?????
^
Main.java:63: error: illegal character: '\u2014'
????, ? mdf ????? ?????? ? ???? ?????? ?????
^
Main.java:63: error: illegal character: '\u00bb'
????, ? mdf ????? ?????? ? ???? ?????? ?????
^
Main.java:65: error: illegal character: '\ufe0f'
4?? ??? ????????? TempDB ???????? ?????????? (?????)
^
Main.java:65: error: illegal character: '\u20e3'
4?? ??? ????????? TempDB ???????? ?????????? (?????)
^
Main.java:66: error: illegal character: '\u2705'
? ??????? ?1
^
Main.java:66: error: illegal character: '\u2116'
? ??????? ?1
^
Main.java:70: error: illegal character: '\u00ab'
?? ??????????, ? ??????? ???????????.
^
Main.java:70: error: illegal character: '\u00bb'
?? ??????????, ? ??????? ???????????.
^
Main.java:72: error: illegal character: '\ud83d\udd27'
? ??? ????? ??????? ?????????
^
Main.java:80: error: illegal character: '\ud83d\udc49'
? ????? ???:
^
Main.java:82: error: illegal character: '\u2192'
tempdb.mdf ? 10 ??
^
Main.java:84: error: illegal character: '\u2192'
tempdev2.ndf ? 10 ??
^
Main.java:86: error: illegal character: '\u2026'
?
^
Main.java:88: error: illegal character: '\u2192'
tempdev8.ndf ? 10 ??
^
Main.java:90: error: illegal character: '\ud83d\udd27'
? ??? ????????? ???? ????????
^
Main.java:93: error: class, interface, or enum expected
GO
^
Main.java:94: error: class, interface, or enum expected
DBCC SHRINKFILE (tempdev, 10240); -- 10 GB
^
Main.java:98: error: illegal character: '\u26a0'
?? ????? ?? ? ??????? ?????
^
Main.java:98: error: illegal character: '\ufe0f'
?? ????? ?? ? ??????? ?????
^
Main.java:109: error: class, interface, or enum expected
GO
^
Main.java:121: error: class, interface, or enum expected
GO
^
Main.java:125: error: illegal character: '\u00ab'
??? ???????????, ????? ??? ?????????? ?? ??????? ??????.
^
Main.java:125: error: illegal character: '\u00bb'
??? ???????????, ????? ??? ?????????? ?? ??????? ??????.
^
Main.java:127: error: illegal character: '\ufe0f'
5?? ??? ?????????, ??? TempDB ??????? ???? ???????? ??????????
^
Main.java:127: error: illegal character: '\u20e3'
5?? ??? ?????????, ??? TempDB ??????? ???? ???????? ??????????
^
Main.java:128: error: illegal character: '\ud83d\udd0d'
? ???????? ?????????? ??????
^
Main.java:135: error: unclosed character literal
FROM sys.dm_io_virtual_file_stats(DB_ID('tempdb'), NULL) v
^
Main.java:135: error: unclosed character literal
FROM sys.dm_io_virtual_file_stats(DB_ID('tempdb'), NULL) v
^
Main.java:140: error: illegal character: '\ud83d\udc49'
? ???? ??? ??????:
^
Main.java:140: error: class, interface, or enum expected
? ???? ??? ??????:
^
Main.java:146: error: illegal character: '\ufe0f'
6?? ????? ?????? ????? (???????? ??????)
^
Main.java:146: error: illegal character: '\u20e3'
6?? ????? ?????? ????? (???????? ??????)
^
Main.java:148: error: illegal character: '\u2757'
? TempDB ?? ????? ??? ??????
^
Main.java:149: error: illegal character: '\u2757'
? TempDB ??????? contention, ????? ??????? ??? ????
^
Main.java:163: error: illegal character: '\ufe0f'
7?? ?????? ?????? ?????? ??? ?????????, ?? ?????? ???? ??????
^
Main.java:163: error: illegal character: '\u20e3'
7?? ?????? ?????? ?????? ??? ?????????, ?? ?????? ???? ??????
^
Main.java:163: error: illegal character: '\u00ab'
7?? ?????? ?????? ?????? ??? ?????????, ?? ?????? ???? ??????
^
Main.java:163: error: illegal character: '\u00bb'
7?? ?????? ?????? ?????? ??? ?????????, ?? ?????? ???? ??????
^
Main.java:173: error: illegal character: '\u2014'
????????? ??? ? execution plan ? ??????? InfoRg.
^
69 errors
stdout