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
실행과 하나의
-i code> 입력 파일로 실행하는 테스트를 수행했습니다. 개별 명령에는 20초가 걸리고, 조합 명령에는 4초가 걸립니다. 따라서 이는 시작 오버헤드나 연결 오버헤드의 문제인 것 같습니다. <p>
</p>@siggemannen의 제안에 따라 AD 자격 증명과 직접 데이터베이스 사용자를 사용하여 연결을 테스트했습니다. AD 자격 증명은 직접 데이터베이스 연결보다 훨씬 느립니다. 이는 이것이 제 시나리오에서 나타나는 속도 저하의 원인임을 의미합니다. <p>
</p>문제를 해결하거나 추가 문제 해결을 위한 제안이나 아이디어를 찾고 있습니다. AD 인증 속도를 높일 수 있는 방법이 있나요? <h2 class="daan"></h2>Solution<p><code>sqlcmd
并不比原生版本慢。使用 Windows/AD 凭据建立连接会增加建立连接所需的启动时间,并且在用例中为每个 sqlcmd
Go 은 기본 버전보다 느리지 않습니다. Windows/AD 자격 증명을 사용하여 연결을 설정하면 연결을 설정하는 데 필요한 시작 시간이 늘어나고 사용 사례의 각 인스턴스에 대해 하나의 SQL 파일을 실행하여 추가 오버헤드가 추가됩니다. sqlcmd
运行许多 SQL 文件,这将恢复我们所需的性能。但是,我们无需任何返工即可使用的替代方案是使用 SQL Server 级别主体 sa
在创建数据库时创建。这恢复了与使用 AD 登录的本机 sqlcmd
sa
는 데이터베이스가 생성될 때 생성됩니다. 이렇게 하면 AD 로그인을 사용하여 기본 🎜과 비슷한 성능이 복원됩니다. 🎜위 내용은 Go SQLCMD는 Windows 기본 버전보다 느립니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

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

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

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

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

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

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

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


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

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

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

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

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

드림위버 CS6
시각적 웹 개발 도구
