понедельник, 26 мая 2025 г.

SQLite vs MSSQL localDB, , ConnectionString

SQLite, SqlLocalDB, ConnectionString

SQLite vs MSSQL localDB 

https://ask.chadgpt.ru/share/9ef35e6e-d478-41e4-bc48-dc0762e9d5bd

LocalDB действительно поставляется как часть дистрибутива SQL Server Express («SQLExpress»), но также его можно установить отдельно.

SQL Server Express — это бесплатная версия SQL Server для разработчиков и небольших приложений. Она может устанавливаться в двух основных вариантах: как "основная" Express-версия (полноценный SQL сервер) и как LocalDB, облегчённая версия для разработчиков, которая легче использовать локально и не требует сложной конфигурации службы.

SQLLocalDB command

sqllocaldb i

sqllocaldb info MSSQLLocalDB

MSSQLLocalDB — это "SQL Server Express LocalDB", компонент бесплатной редакции SQL Server Express, и по поддерживаемым возможностям он почти не отличается от полноценного SQL Server Express, кроме режима запуска (локальный, пользовательский, упрощённая установка и т. д.).

Ответы детально:

1. Stored Procedures (Хранимые процедуры):
Да, в LocalDB можно создавать, изменять и выполнять хранимые процедуры ― точно так же, как на полноценном сервере SQL Server любых редакций (Express, Standard, Enterprise).

2. Triggers (Триггеры):
Да, триггеры в LocalDB поддерживаются полностью. Можно создавать DML-триггеры (AFTER/INSTEAD OF/BEFORE INSERT, UPDATE, DELETE и др.).

3. SYSTEMDATETIME:
Да, функция SYSDATETIME() поддерживается в LocalDB ― она возвращает дату и время (тип datetime2). Также поддерживаются функции GETDATE(), CURRENT_TIMESTAMP и другие стандартные функции времени, как и на другой редакции SQL Server.

---

PolyBase Query Service for External Data — это компонент Microsoft SQL Server, который позволяет выполнять запросы к внешним источникам данных, как если бы это были обычные таблицы в базе SQL Server. Проще говоря, PolyBase позволяет объединять данные из разных источников прямо в SQL-запросах. Например, вы можете делать JOIN между таблицей в SQL Server и файлом CSV в HDFS (Hadoop) или объекте в Azure Blob Storage. Также PolyBase поддерживает работу с другими SQL Server, Oracle, Teradata, MongoDB и т.д.

---------

Опция "Machine Learning Services and Language Extensions" в установщике SQL Server добавляет поддержку выполнения кода на языках программирования, предназначенных для анализа данных и машинного обучения, непосредственно внутри SQL Server. Эта функция позволяет выполнять сложные аналитические задачи и машинное обучение без необходимости выгружать данные из базы — код выполняется прямо на сервере рядом с данными.

Что входит в эту опцию:

  • Встраивание языков анализа данных:
    Позволяет использовать языки программирования для аналитики. Наиболее распространённые:
    • R Services (In-Database): поддержка языка R для описательной и предиктивной аналитики.
    • Python Services (In-Database): поддержка Python для анализа данных и машинного обучения.
    • (С SQL Server 2022 и выше) Дополнительные расширения: появились возможности работы с Java, а также подключать внешние расширения через "Language Extensions" (например, Java, JavaScript и пр.).
  • Выполнение моделей машинного обучения:
    Можно обучать и запускать предиктивные модели (например, классификация, регрессия) рядом с данными, используя встроенные библиотеки R или Python (например, scikit-learn, pandas, numpy и др.).
  • Безопасное исполнение внешнего кода:
    Код выполняется в изолированном безопасном окружении ("SQL Server Launchpad"), чтобы минимизировать риски для основного SQL-сервера.
  • Дополнительные библиотеки и компоненты:
    При установке этой опции устанавливаются системные компоненты для работы с выбранными языками, соответствующие open-source библиотеки и средства управления ресурсами.
  • Интеграция с T-SQL:
    Можно вызывать R/Python скрипты прямо в SQL-запросах через специальные процедуры (sp_execute_external_script).

Зачем это нужно?

Это удобно для компаний и специалистов, которые хотят делать оперативную аналитику, строить отчёты с использованием кода R или Python, запускать ML-модели без миграции данных во внешние системы анализа. Например, вы можете прогнозировать продажи, искать аномалии, делать кластеризацию, строить графики — и всё это внутри SQL Server.

Примечания:

  • После установки, чтобы использовать R или Python, нужные пакеты подгружаются автоматически, а стандартные библиотеки языков устанавливаются по умолчанию.
  • Для работы с языками потребуется дополнительная настройка безопасности, прав доступа и иногда — открытие портов или настройка сервисов (например, Launchpad).
  • Размер дискового пространства, необходимого для этой функции, может быть существенным (десятки или даже сотни мегабайт).

Вывод:
Если эта опция выбрана, SQL Server сможет запускать машинное обучение и аналитический код на выбранных вами языках, и ваши аналитики смогут писать скрипты Python или R, не покидая среды SQL Server.

--

1. Сервис SQL Server запущен ли?
Перейдите в «Службы» Windows (services.msc) и найдите службу с именем вроде SQL Server (SQLEXPRESS) — статус должен быть «Работает» или «Выполняется».

2. Подключается ли SQL Server Management Studio (SSMS)?
Если у вас установлен SSMS, попробуйте подключиться к серверу.
Для Express по умолчанию это .\SQLEXPRESS или localhost\SQLEXPRESS.
Если вход успешный — это главный признак работоспособности.

3. Создается ли новая база данных?
После подключения попробуйте создать тестовую БД через SSMS или запросом:

CREATE DATABASE TestDB;

4. Создается/работает ли таблица и простые запросы?
Создайте таблицу и вставьте данные:

USE TestDB;
CREATE TABLE TestTable (ID INT PRIMARY KEY, Name NVARCHAR(50));
INSERT INTO TestTable VALUES (1, N'Тест');
SELECT * FROM TestTable;

Если всё работает — SQL Server установлен и функционирует.

5. Проверить журнал установки
Если есть сомнения — посмотрите журнал установки SQL Server (обычно хранится в C:\Program Files\Microsoft SQL Server\<номер версии>\Setup Bootstrap\Log\).

6. Доступ через приложения
Попробуйте подключиться к серверу из стороннего приложения (например, Excel, скрипта Python через pyodbc/pymssql и др.).

7. Проверить конфигурацию портов/сетевого доступа (по желанию)
Для сетевого подключения удостоверьтесь, что SQL Server Express настроен на TCP/IP, и соответствующий порт (обычно 1433) открыт в брандмауэре, если нужно подключение с других машин.

---

SQL Server Launchpad (SQLEXPRESS)
Это служба, которая отвечает за запуск и обработку внешних скриптов, например, на языках R или Python, внутри SQL Server (так называемая “Machine Learning Services”). Начиная с SQL Server 2016 появилась возможность запускать аналитические скрипты прямо в базе данных, не только на T-SQL, но и с помощью R или Python, чтобы, например, анализировать данные или строить модели машинного обучения на лету.

Если вы не используете внешние скрипты/машинное обучение в SQL Server, службу SQL Server Launchpad можно оставить остановленной — это никак не мешает работе стандартной базы.

SQL Full-text Filter Daemon Launcher (SQLEXPRESS)
Эта служба используется для полнотекстового поиска — это расширенная возможность поиска по текстовым данным и документам прямо в базе данных. Например, если вы хотите искать по большому объёму текстовых полей (или файлов Word/Excel/PDF) с поддержкой морфологии (склонения, падежи и т. д.) и прочих “умных” функций.

Если вы не используете полнотекстовый поиск, можете спокойно держать службу остановленной.

Резюме
Обе эти службы — дополнительные возможности. SQL Server и SQL Server Agent нужны для обычной работы и автоматизации задач, остальные можно запускать только при необходимости соответствующего функционала.

--

LocalDB — это облегчённая версия Microsoft SQL Server, предназначенная для разработчиков. Обычно она используется для разработки и тестирования приложений на локальной машине. LocalDB интегрируется, в первую очередь, со средой Visual Studio.

Где искать LocalDB на компьютере:

  1. Исполняемый файл
    Обычно исполняемый файл LocalDB называется SqlLocalDB.exe.
    Он располагается в каталоге:
C:\Program Files\Microsoft SQL Server\130\Tools\Binn\

или, для более новых версий (например, 2019 и позже):

C:\Program Files\Microsoft SQL Server\150\Tools\Binn\
C:\Program Files\Microsoft SQL Server\160\Tools\Binn\

Номер папки (130, 140, 150, 160) — это номер версии SQL Server (2016, 2017, 2019, 2022 и т. д.).

  1. Поиск через командную строку
    Откройте командную строку и выполните:
where SqlLocalDB

Эта команда покажет путь к исполняемому файлу, если он добавлен в переменную окружения PATH.

  1. Список экземпляров LocalDB
    В той же командной строке выполните:
SqlLocalDB.exe i

(или SqlLocalDB i) — эта команда покажет установленные экземпляры LocalDB.

  1. Интеграция с Visual Studio
    LocalDB может быть автоматически установлен с Visual Studio. Проекты ASP.NET по умолчанию могут использовать LocalDB как источник данных.
  2. Как подключиться к LocalDB из SQL Server Management Studio (SSMS)
    В поле "Server name" нужно написать что-то вроде:
(localdb)\MSSQLLocalDB

или

(localdb)\ProjectsV13

(название экземпляра можно увидеть через команду выше).

LocalDB в списке служб
В отличие от обычного SQL Server, LocalDB не отображается в службах Windows (services.msc) — она запускается только при необходимости, в контексте пользователя.

Вывод:
LocalDB “прячется” в папке Tools\Binn, не видна в системных службах, управляется через SqlLocalDB.exe и часто используется по умолчанию в проектах Visual Studio. Если что-то не находится, спросите — помогу найти по вашим параметрам!

--

1. Узнать состояние экземпляра

Запустите команду, чтобы посмотреть состояние интересующего экземпляра (например, MSSQLLocalDB):

SqlLocalDB.exe info MSSQLLocalDB

Это покажет более подробную информацию: состояние, путь к базе, порт и т.д.

2. Запустить экземпляр (если не запущен):

SqlLocalDB.exe start MSSQLLocalDB

3. Подключиться к экземпляру через SQL Server Management Studio (SSMS):

В поле "Server name" укажите:

(localdb)\MSSQLLocalDB

или

(localdb)\ProjectModels

в зависимости от того, к какому экземпляру хотите подключиться.

4. Узнать путь к файлам базы данных, если нужно:
В результате команды на шаге 1 будет строка Instance pipe name — это строка, по которой можно подключиться из других приложений.

Пример подключения в строке подключения для .NET:

Server=(localdb)\MSSQLLocalDB;Integrated Security=true;

Если нужен пример подключения из кода, или инструкция по созданию новой базы в LocalDB — просто уточните ваш вопрос!

--

Как подключиться к ProjectModels

В SQL Server Management Studio (SSMS):

  • В поле "Server name" введите:
  (localdb)\ProjectModels
  • Используйте "Windows Authentication".
  • Нажмите Connect.

Если используется строка подключения (например, для .NET/EF Core):

Server=(localdb)\ProjectModels;Integrated Security=True;

Как запустить MSSQLLocalDB

Если потребуется именно MSSQLLocalDB, выполните в PowerShell/командной строке:

SqlLocalDB.exe start MSSQLLocalDB

Использование "Instance pipe name"

Instance pipe name нужен чаще для отладки либо если клиент не видит экземпляр обычным образом, тогда строка подключения выглядит так:

np:\\.\pipe\LOCALDB#8A103913\tsql\query

Но обычно проще использовать (localdb)\ProjectModels.

--

  "ConnectionStrings": {

    "RazorPagesMovieContext": "Server=(localdb)\\MSSQLLocalDB;Database=RazorPagesMovieContext-afcfd43d-e8d7-4af9-9f89-7dfa9b74656f;Trusted_Connection=True;MultipleActiveResultSets=true"

  }

---

Как посмотреть или удалить эти базы

Посмотреть:
Откройте SQL Server Management Studio (SSMS), подключитесь к серверу

(localdb)\MSSQLLocalDB

и в списке баз увидите подобные базы.

Удалить:
Можно просто удалить базу через контекстное меню в SSMS или выполнив в окне запросов:

DROP DATABASE [RazorPagesMovieContext-afcfd43d-e8d7-4af9-9f89-7dfa9b74656f]
--------------

Создание экземпляра Microsoft SQL Server LocalDB средствами самой программы

SQL Server Management Studio (SSMS) невозможно напрямую, потому что LocalDB — это облегчённая версия SQL Server, предназначенная в первую очередь для разработчиков, и она разворачивается и управляется через консольные команды (обычно через SqlLocalDB.exe).

Выполнить создание новой LocalDB через SSMS штатными "мастером" невозможно.

Однако подключаться к существующей LocalDB базе через SSMS можно.

Вот подробные инструкции, как создать новый экземпляр LocalDB, а затем подключиться к нему через SSMS:


1. Установите SQL Server Express LocalDB

Если LocalDB ещё не установлен,

загрузите и установите компонент https://aka.ms/sqlexpress (или с официального сайта).


2. Создайте экземпляр LocalDB через командную строку

Откройте командную строку (cmd.exe) от своего имени пользователя (НЕ от администратора!)

и выполните команду:

SqlLocalDB create MyInstance

Здесь MyInstance — это имя вашего нового экземпляра LocalDB. Можно выбрать любое удобное имя.

Чтобы запустить экземпляр, выполните команду:

SqlLocalDB start MyInstance

Если вы хотите сразу создать и запустить, то можно обе команды подряд.


3. Найдите строку подключения

Чтобы узнать путь к экземпляру, введите:

SqlLocalDB info MyInstance

Или для списка всех экземпляров:

SqlLocalDB i

Вы увидите строку вида:
(localdb)\MyInstance


4. Подключитесь к LocalDB с помощью SSMS

  1. Откройте SQL Server Management Studio.
  2. В окне подключения в поле Server name укажите:
   (localdb)\MyInstance

или, если вы используете стандартный экземпляр:

   (localdb)\MSSQLLocalDB
  1. Тип аутентификации — Windows Authentication (под той же учёткой).
  2. Нажмите Connect.

Частые вопросы

  • Можно ли создать LocalDB средствами SSMS?
    Нет, только через командную строку.
  • Можно ли управлять LocalDB через SSMS?
    Да, LocalDB после запуска появляется в списке экземпляров, её можно использовать почти как обычный SQL Server Express, за исключением серверных функций (агент, доступ по сети и др.).
  • Как удалить экземпляр LocalDB?
  SqlLocalDB delete MyInstance
---
Project
D:\VC25\gs.trade.core\EntityFrmSamples\EntityFrmSamples.sln
D:\VC25\gs.trade.core\EntityFrmSamples\Ca_People_01\Ca_People_01.csproj
ConnectionString:
var connectionString = @"Server=(localdb)\MyInstance;Database=TestDB;Trusted_Connection=True;";

---

Проект

  • Для создания новой базы данных используйте, например, запрос:
  CREATE DATABASE TestDB;
  • Для просмотра уже существующих баз:
  SELECT name FROM sys.databases;
  • Чтобы создать новую таблицу:
  USE TestDB;
  CREATE TABLE People (
      Id INT IDENTITY(1,1) PRIMARY KEY,
      Name NVARCHAR(100),
      Age INT
  );
  • Для вставки данных:
  INSERT INTO People (Name, Age) VALUES (N'Иван', 30);
  • Просмотр данных:
  SELECT * FROM People;

Полезные замечания:

  • LocalDB создаёт файлы баз данных в профиле пользователя (обычно это папка вида
    C:\Users\<Пользователь>\)
  • Все ваши действия доступны только для вас (а не для других пользователей ПК).
  • LocalDB — идеальный инструмент для разработки, тестирования, обучения.
---

. Убедитесь, что создана база и таблица

В Management Studio или через скрипт вы уже создали:

  • Экземпляр LocalDB — MyInstance
  • Базу данных — TestDB
  • Таблицу — People с данными

2. Создайте консольный проект .NET

Откройте Visual Studio:

  • Создайте новый проект: Console App (.NET Core)
  • Назовите, например, EfCoreLocalDbDemo

3. Установите нужные NuGet-пакеты

Откройте Package Manager Console или используйте UI:

Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer

4. Пример кода

Program.cs (или нужный файл):

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using Microsoft.EntityFrameworkCore;

namespace EfCoreLocalDbDemo
{
    // 1. Сущность
    [Table("People")]
    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; } = "";
        public int Age { get; set; }
    }

    // 2. Контекст
    public class TestDbContext : DbContext
    {
        public DbSet<Person> People { get; set; } = null!;

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            var connectionString = @"Server=(localdb)\MyInstance;Database=TestDB;Trusted_Connection=True;";
            optionsBuilder.UseSqlServer(connectionString);
        }
    }

    // 3. Основная программа
    class Program
    {
        static void Main()
        {
            using var db = new TestDbContext();
            Console.WriteLine("Список людей в базе TestDB:");

            List<Person> people = db.People.ToList();
            foreach (var person in people)
            {
                Console.WriteLine($"Id={person.Id} Name={person.Name} Age={person.Age}");
            }
        }
    }
}

5. Обратите внимание на важные моменты

  • Проверьте, что экземпляр LocalDB MyInstance существует, и база TestDB создана.
  • Строка подключения
  • Server=(localdb)\MyInstance;Database=TestDB;Trusted_Connection=True;
  • корректна для LocalDB и Windows-авторизации.
  • Если возникнут ошибки подключения,
  • проверьте имя LocalDB (в терминале: sqllocaldb i чтобы увидеть список)
  • и что база действительно создана там.
  • Миграции не нужны, так как база и таблица уже созданы по вашему SQL-скрипту.

Запуск

Скомпилируйте и запустите проект. Вы увидите строки:

Список людей в базе TestDB:
Id=1 Name=Serge Age=42
Id=2 Name=Marianna Age=35
-----

Вы абсолютно правы: Том Декстра (Tom Dykstra) выбрал LocalDB для своего туториала по Razor Pages не случайно. LocalDB идеально подходит для обучающих материалов и примеров, особенно по следующим причинам:

Во-первых, LocalDB не требует отдельного сервера или сложной установки. Его можно развернуть буквально за пару минут, он запускается только при необходимости и не потребляет ресурсы постоянно.

Во-вторых, для начинающих очень важно иметь среду, повторяющуюся у большинства разработчиков. LocalDB интегрируется с Visual Studio, и практически гарантировано будет работать у каждого, кто следит за официальными гайдами Microsoft.

Кроме того, всё, что касается SQL Server (типы данных, язык запросов, хранимые процедуры, транзакции, менеджмент через SSMS), поддерживается и в LocalDB. Это позволяет разрабатывать и отлаживать полноценные приложения, которые легко переносятся в «боевой» SQL Server, если потребуется.

И наконец, LocalDB удобен для тестирования, отработки миграций (например, через Entity Framework), написания юнит-тестов и раздельной работы над своим экземпляром БД, не мешая другим пользователям или команде.

Подводя итог, выбор LocalDB для обучающих проектов — грамотное решение: это сочетание простоты, совместимости с «большим» SQL Server и достаточной мощности для большинства учебных и домашних задач.

Комментариев нет:

Отправить комментарий