Какие запросы выполняет CSV-импорт Datagrip? - PullRequest
0 голосов
/ 10 декабря 2018

Я использую DataGrip для импорта CSV в базу данных, как показано здесь:

https://www.jetbrains.com/datagrip/features/importexport.html

Но я хочу понять, какие запросы выполняет DataGrip к моей базе данных.Я использую MS SQL SERVER 2012.

При нажатии на вкладке DDL PREVIEW я вижу следующий фрагмент:

CREATE TABLE VESSEL_POSITIONS.dbo.[SOFS_T-AIS]
(
    imo INT,
    MESSAGE_SOURCE TEXT,
    MSG_SRC_COUNT INT
)

, но я хочу понять, как выполняются фактические вставки.

Это кажется слишком волшебным, и я хочу узнать больше.

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Вы можете наблюдать все запросы, выполняемые DataGrip в журнале полного SQL.

enter image description here

0 голосов
/ 10 декабря 2018

Вам нужно захватить выполненные операторы, используя Extended Events сеанс или Profiler .Рекомендуемый способ - использовать расширенные события.Вам необходимо создать сеанс и указать, какие события вас интересуют и где хранить захваченные данные.В SSMS откройте окно запроса и выполните этот запрос:

CREATE EVENT SESSION [Capture_Datagrip_Queries]
ON SERVER
ADD EVENT sqlserver.sql_statement_completed(
    ACTION 
    (
            sqlserver.sql_text
    )
    WHERE 
    (
            database_id = 9
    )
)
ADD TARGET package0.event_file
(
    SET filename = 'D:\XE\Datagrip.xel',
        max_file_size = 5,
        max_rollover_files = 1
)

Поместите database_id базы данных, в которой будут выполняться запросы (в моем примере это 9).Вы можете получить его, выполнив этот запрос select db_id(N'MyDatabaseName').Это уменьшит накладные расходы, захватив только соответствующую информацию, но в противном случае часть where является необязательной.Также имейте в виду, что файл будет создан на компьютере, на котором работает SQL Server.Не добавляйте путь с вашего локального компьютера.Кроме того, вы можете добавить дополнительную информацию для захвата, если хотите.

После того, как вы создали этот сеанс, вы можете запустить / остановить его, используя следующие запросы:

ALTER EVENT SESSION [Capture_Datagrip_Queries] ON SERVER STATE = START
ALTER EVENT SESSION [Capture_Datagrip_Queries] ON SERVER STATE = STOP

Или в SSMSиспользуя узел Management \ Extended Events \ Sessions в Обозревателе объектов.Не оставляйте сеанс запущенным дольше, чем необходимо.

Вы можете увидеть результаты в SSMS - под сеансом есть узел package0.event_file.Дважды щелкните по нему, чтобы увидеть собранные данные.

...