Toad World® Forums

Git unusable slow

Hi,

I am using Toad 13.1.1.5 in combination with oracle 12c and git 2.22.0 and all version control related tasks like checkin/checkout are very slow. It takes up to 3 minutes to checkin/checkout a file.

If I turn on Team Coding Logging it seems like "git log --raw --date=raw" is repeated very often and each time it takes ~20 seconds.

16:23:12  Method Name: VCS Command
16:23:12  Request: 
16:23:12  "C:\Program Files\Git\bin\git.exe" log --raw --date=raw "ZKAREG/(DESCRIPTION=(ADDRESS=(PORT=1521)(HOST=10.ZZZ.YYY.XX)(PROTOCOL=TCP))(CONNECT_DATA=(SERVICE_NAME=XXX)))/PACKAGE_BODY/ZKAREG.PKG_LOG.PKB"
16:23:33  Response: 
16:23:33  commit dad7ab45e7c880b3f80577c54eb377ed9c2a2d22
16:23:33  Author: XXX
16:23:33  Date:   1549371717 +0100
16:23:33      Updated from XXX
"16:23:33  :000000 100644 0000000 0fb495e A	database/TOAD_GIT/ZKAREG/(DESCRIPTION=(ADDRESS=(PORT=1521)(HOST=10.ZZZ.YYY.XX)(PROTOCOL=TCP))(CONNECT_DATA=(SERVICE_NAME=XXX)))/PACKAGE_BODY/ZKAREG.PKG_LOG.PKB"

Best Regards
Cord

Hi Maaz,

There are a couple of things that could be in play here. Toad uses the Git command-line client to actually perform the necessary work within Git. It also calls the log command to receive information about the current state of the working file within the local Git repository. Unfortunately, Toad needs to call this command in order to gather that information when needed.

As for the slow performance, there are two potential causes that I can think off the top of my head that we've seen in the past. The first is that the local repository's database has grown quite large or has become (in some way) corrupt. Have you tried issuing that same command from a DOS command prompt (not git-bash)? Does it also take a while to execute that command? if so, what is the size of your ".git" folder which houses your local Git repository? Is it overly large?

The other potential cause that we've seen is when real time virus software (or other security applications) interfere with the execution of command-line processes. In this scenario, we've seen situations where a security application would dynamically scan the application being executed (in this case, "Git.exe") every time Toad spawned its process. This caused significant slowdown in performance. The solution to this for some was to whitelist the Git.exe application, as well as possibly the working folder for your Oracle files, with the security application so those applications / files weren't scanned every time they were accessed or changed. Here's a link to a similar post that happened for a user with SVN:

I would check to see if you're running an anti-virus program, and if so, make sure that you have Git.exe whitelisted in that program.

Let us know if that helps to alleviate the issue you're running into.

Thanks!

-John

Hey John,

thanks a lot for your response. I guess I've found something to accelerate checkin/checkout a bit.
According to this blogpost git commit graph I've turned on the commit graph and with that turned on, a single

git log --raw --date=raw  

on commandline took ~ 5 seconds. Without commit graph it used ~20 seconds.
With that feature turned on, the the whole checkout takes 45 s instead of 3 minutes without that feature. Still slow but much better...

$ time git log --raw --date=raw "ZKAREG/(DESCRIPTION=(ADDRESS=(PORT=1521)(HOST=10.ZZZ.YYY.XX)(PROTOCOL=TCP))(CONNECT_DATA=(SERVICE_NAME=XXX)))/PACKAGE/ZKAREG_APEX.P0_PACKAGE.PKS"
commit 65d25419ee2806595d15275c46850146b1857770 (HEAD -> master)
Author: XXX
Date:   1574352458 +0100

    Updated from XXX

:000000 100644 0000000 da96d1e A        database/TOAD_GIT/ZKAREG/(DESCRIPTION=(ADDRESS=(PORT=1521)(HOST=10.ZZZ.YYY.XX)(PROTOCOL=TCP))(CONNECT_DATA=(SERVICE_NAME=XXX)))/PACKAGE/ZKAREG_APEX.P0_PACKAGE.PKS

real    0m4,150s
user    0m0,000s
sys     0m0,529s
$ time git log --raw --date=raw "ZKAREG/(DESCRIPTION=(ADDRESS=(PORT=1521)(HOST=10.ZZZ.YYY.XX)(PROTOCOL=TCP))(CONNECT_DATA=(SERVICE_NAME=XXX)))/PACKAGE/ZKAREG_APEX.P0_PACKAGE.PKS"
commit 65d25419ee2806595d15275c46850146b1857770 (HEAD -> master)
Author: XXX
Date:   1574352458 +0100

    Updated from XXX

:000000 100644 0000000 da96d1e A        database/TOAD_GIT/ZKAREG/(DESCRIPTION=(ADDRESS=(PORT=1521)(HOST=10.ZZZ.YYY.XX)(PROTOCOL=TCP))(CONNECT_DATA=(SERVICE_NAME=XXX)))/PACKAGE/ZKAREG_APEX.P0_PACKAGE.PKS

real    0m22,464s
user    0m0,015s
sys     0m0,468s

--Cord