찾다
백엔드 개발GolangGo SQLCMD는 Windows 기본 버전보다 느립니까?

Go SQLCMD 比 Windows 原生版本慢吗?

PHP 편집자 Xiaoxin님, 데이터베이스를 관리하고 운영하기 위해 SQLCMD 도구를 자주 사용하시나요? Windows 기본 버전과 Go SQLCMD의 성능 차이를 비교해 본 적이 있나요? 이런 질문이 있다면 오늘 이 주제에 대해 토론해 보겠습니다. 이 기사에서는 이 두 버전의 성능을 비교하고 Go SQLCMD가 기본 Windows 버전보다 느린지 여부에 대한 답을 제공합니다. 한 번 보자!

질문 내용

Windows 로컬sqlcmd 在本地 SQL Server 数据库上运行脚本。我有一组脚本文件,用于创建数据库、添加表和索引、填充域数据、添加存储过程等。运行脚本是通过每个文件执行一个 sqlcmd -i <file>.sql</file>을 사용하여 완료했습니다. 이것은 잘 작동하고 충분히 빠릅니다. sqlcmd의 새로운 Go 구현으로 전환한 후 데이터베이스 구축 시간이 몇 배 느려졌습니다.

연결 문제인지, 연결 풀링인지, 아니면 다른 문제인지 확인하기 위해 sqlcmd获取计时类型的统计信息来确定是否是连接问题、连接池或其他问题。如果我将多个文件作为附加的 -i <file.sql></file.sql>에서 타이밍 유형 통계를 얻을 수 있는 방법을 찾지 못했습니다. 여러 파일을 추가 -i <file.sql></file.sql> 옵션으로 전달하면 이것이 Go 명령 시작 또는 초기 데이터베이스 연결 설정임을 나타내는 개선 사항을 확인할 수 있습니다. 문제. p>

저는 10개의 SQL 파일을 가져와서 10개의 개별 sqlcmd 执行来运行,也作为一个 sqlcmd 执行来运行,这十个文件作为单独的 -i 실행과 하나의

실행으로 실행하고 10개의 파일을 별도의 -i code> 입력 파일로 실행하는 테스트를 수행했습니다. 개별 명령에는 20초가 걸리고, 조합 명령에는 4초가 걸립니다. 따라서 이는 시작 오버헤드나 연결 오버헤드의 문제인 것 같습니다. <p> </p>@siggemannen의 제안에 따라 AD 자격 증명과 직접 데이터베이스 사용자를 사용하여 연결을 테스트했습니다. AD 자격 증명은 직접 데이터베이스 연결보다 훨씬 느립니다. 이는 이것이 제 시나리오에서 나타나는 속도 저하의 원인임을 의미합니다. <p> </p>문제를 해결하거나 추가 문제 해결을 위한 제안이나 아이디어를 찾고 있습니다. AD 인증 속도를 높일 수 있는 방법이 있나요? <h2 class="daan"></h2>Solution<p><code>sqlcmd 并不比原生版本慢。使用 Windows/AD 凭据建立连接会增加建立连接所需的启动时间,并且在用例中为每个 sqlcmdGo

은 기본 버전보다 느리지 않습니다. Windows/AD 자격 증명을 사용하여 연결을 설정하면 연결을 설정하는 데 필요한 시작 시간이 늘어나고 사용 사례의 각

인스턴스에 대해 하나의 SQL 파일을 실행하여 추가 오버헤드가 추가됩니다. sqlcmd 运行许多 SQL 文件,这将恢复我们所需的性能。但是,我们无需任何返工即可使用的替代方案是使用 SQL Server 级别主体 sa 在创建数据库时创建。这恢复了与使用 AD 登录的本机 sqlcmd

빌드 스크립트를 다시 작성하여 각 개인에 대해 많은 SQL 파일을 실행할 수 있으며 🎜 이를 통해 필요한 성능을 복원할 수 있습니다. 그러나 재작업 없이 사용할 수 있는 대안은 SQL Server 수준 보안 주체 sa는 데이터베이스가 생성될 때 생성됩니다. 이렇게 하면 AD 로그인을 사용하여 기본 🎜과 비슷한 성능이 복원됩니다. 🎜

위 내용은 Go SQLCMD는 Windows 기본 버전보다 느립니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 stackoverflow에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
GO 대 기타 언어 : 비교 분석GO 대 기타 언어 : 비교 분석Apr 28, 2025 am 12:17 AM

goistrongchoiceforprojectsneedingsimplicity, performance, and concurrency, butitmaylackinadvancedfeaturesandecosystemmaturity.1) go'ssyntaxissimpleandeasytolearn, go'ssyntaxissimpleandeasytolearn, theadtofewerbugsandmoremaintainablecode, theitlacksfeaturecomecemememecememememecememememememememememecemememememecemememecemememecemememecemecemecode

GO의 Go Intatic Initializers와 다른 언어의 시작 기능 비교GO의 Go Intatic Initializers와 다른 언어의 시작 기능 비교Apr 28, 2025 am 12:16 AM

go'sinitfunctionandjava'sstaticinitializersbothservetosetupenvironmentmentsbotheforethemainfunction, buttheydifferinexecutionandcontrol.go'sinitissimpleandautomatic, 적합한 적절한 소제 세트 비트 캔 리드 토프 렉스 오버러스

GO의 Init 기능에 대한 일반적인 사용 사례GO의 Init 기능에 대한 일반적인 사용 사례Apr 28, 2025 am 12:13 AM

theinitfunctioningoare에 대한 thecommonusecases : 1) loadingConfigurationFiles는 eprogramStarts, 2) 초기화 GlobalVaribles, 및 3) runningpre-checksorvalidationsforeprogramProeceeds

GO의 채널 : 고루 간 통신 마스터 링GO의 채널 : 고루 간 통신 마스터 링Apr 28, 2025 am 12:04 AM

channelsarecrucialingoforenablingsafeandeforcommunicationbetwengoroutines.theyfacilitatesynchronizationandmanagegoroutineLifeCycle, EssentialForConcurrentProgramming.ChannelSAldAllowSendingEndAvivingValues, ActAssignalsForsyNchronization 및 관리

이동 중 오류 : 오류 체인에 컨텍스트 추가이동 중 오류 : 오류 체인에 컨텍스트 추가Apr 28, 2025 am 12:02 AM

GO에서 오류를 줄이고 오류를 통해 컨텍스트를 추가 할 수 있습니다. 1) 오류 패키지의 새로운 기능을 사용하면 오류 전파 중에 컨텍스트 정보를 추가 할 수 있습니다. 2) fmt.errorf 및 %w를 통해 오류를 포장하여 문제를 찾는 데 도움이됩니다. 3) 사용자 정의 오류 유형은 더 많은 의미 론적 오류를 만들고 오류 처리의 표현 능력을 향상시킬 수 있습니다.

GO와 함께 개발할 때 보안 고려 사항GO와 함께 개발할 때 보안 고려 사항Apr 27, 2025 am 12:18 AM

GOOFFERSROBUSTFEATURESECURECODING, BUTDEVENCERMUSTIMPLESSECURITYBESTPRACTICEFICEATIVERY.1) USEGO'SCRYPTOPACKAGEFORUEDATAHANDLING.2) MANICECONCURNCY WHYSYNCHRONICIATIONSPRIMITIVESTOPRECONDITIONS.3) SANITIZEEXTERNALINPOPODOIDSQLINJ

GO의 오류 인터페이스를 이해합니다GO의 오류 인터페이스를 이해합니다Apr 27, 2025 am 12:16 AM

go의 오류 인터페이스는 typeerRorInterface {error () string}로 정의되며, 오류로 간주 될 오류 () 메소드를 구현하는 모든 유형이 허용됩니다. 사용 단계는 다음과 같습니다. 1. 기본적으로 iferr! = nil {log.printf ( "anerroroccurred :%v", err) return}과 같은 오류를 확인하고 로그 오류합니다. 2. typeMyErrorStruct {msgstringDetailString}과 같은 자세한 정보를 제공하기 위해 사용자 정의 오류 유형을 만듭니다. 3. 오류 랩퍼를 사용하여 (GO1.13 이후) 원래 오류 메시지를 잃지 않고 컨텍스트를 추가하고,

동시 GO 프로그램의 오류 처리동시 GO 프로그램의 오류 처리Apr 27, 2025 am 12:13 AM

Toeffectially HandleErrorsinconCurrentGoprograms, UsechannelStocommunicateErrors, ubstractErrorWatchers, ConsiderTimeOuts, UseBufferedChannels 및 ProvideClearerRormessages.1) UsechannelStopassErrorsfromgoroutinestothemainfunction

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구