JDBC connection slow when SQL Server installed on remote server - sql-server

we are developing a web application that use SQL Server 2016 (Express) as a database engine.
We have noticed that the queries we make from application side take 20-30ms (average) when SQL Server is installed locally while, if installed on a remote machine, it take 400-500ms. We tried different versions of JDBC (now version 7.2.2) but the timing is the same. Both PC are connected on same switch.
The connection string we use is:
jdbc:sqlserver://${database.address};SelectMethod=cursor;database=${database.name};useUnicode=true;characterEncoding=UTF-8;charactetrResultSets=UTF-8
We tried to delete SelectMethod=cursor; and the timing improve but not significantly.
It is not a DNS problem because as address we use the IP.
Can someone tell me how to solve the problem?

Related

Deploying Windows application with SQL Server database

I have a WPF project and I will use SQL Server database. The instance of SQL Server IT created for me is SQL Server 13 (2016 standard version) on a remove server. When I’m deploying the application on a client’s computers, what version I need to install there as a prerequisite? Can I deploy SQL Server Express 2016 on a client’s computer and access the remove SQL Server Standard edition? I am looking for a simple solution and for a lighter version I need to install on the user’s computers. I cannot install a full SQL Server on each user.
I have searched the net and a similar question has been asked many times, but I didn’t find a clear answer before. Many people started their SQL Server experience using local type databases, like SQL Server CE or LocalDB. In this case specific DLLs and redistributables must be added with the installation program. It is hard to understand at the beginning, but when an instance of SQL Server is on a remote server, this is a different story. Everything is happening on this remote server. There is no need of any SQL Server instances on a client’s machine. Just a connection string must be added. The adapter or Entity Framework will take care of everything else.

Get List of network SQL servers back

I'm trying to figure out how to get back the list of SQL servers in my Visual Studios (2012, 2015) and even in MS SQL Server management studio... I've been searching for a solution but I'm lost. Is there any way to get these servers back? Everything is working properly, I can write server manually but I'm to lazy to ask my colleagues.
The SQL Server Browser service is running. There are no Windows updates to install and the computer has been rebooted many times.
Thank you for any advice.
The SQL Server Browser service is running
Do you mean on your computer? You'll need it running on the machines you are trying to get to appear in the list.
It's a pretty standard dialog - assuming that it uses the same technology as SSMS, according to MSDN:
This dialog is populated by the SQL Server Browser service on the
server computers. There are several reasons why the name of an
instance might not appear in the list:
The SQL Server Browser service might not be running on the computer running SQL Server.
UDP port 1434 might be blocked by a firewall.
The HideInstance flag might be set.

SQL Server Express installation required for clients connecting to a server?

I would like to know if an installation of SQL Server Express is required on my client PCs? I have searched a fair bit and so far all I've seen were related to attached databases or local databases.
Here's the setup of my system.
There will be a Windows Server PC that will be hosting the SQL Server instance.
Client PCs will be running a VBNet based windows form application where connection strings will be fed to table adapters that would allow them to connect to the server.
Now I have tested running the application on a Windows 7 PC without SQL Server Express installed and it works, connection was a success and data can be retrieved etc. However the system is actually going to be run on Windows XP when it goes live.
So I was wondering if the client PCs would require an installation of SQL Server Express or any sort of dlls for it to be able to connect to the server? Or would the .Net Framework be sufficient?
Thanks in advance.
You will not require a SQL instance on your client PCs. The app can just make the connection to the server via the connection strings. Our app is very similar in the fact that we support Windows Xp and SQL Server 2005 and it works well without any instance on the client PCs. We do install a local instance on the client but this is only used when transferring data to a laptop so it can be used when disconnected from the network. HTH
I think you should install .Net framework on your client pc. I'm not entirely sure if it's the case but to be sure, run it on a Windows XP machine. If you dont have an xp machine, try using desktop simulater like virtualbox of sorts.

Application for debugging SQLNCLI Connections

I am having difficulty getting an application that uses SQL native client to connect to my SQL Server, which up until this point functioned just fine. SQL Profiler on the source server indicates my troublesome application isn't even connecting to the server. I can't find anything in the applications logs or the Windows Event logs.
I would like to independently prove that the issue is not SQL configuration on the machine by using another application to connect. I have tried ODBC with the SQLNCLI Driver, and it works fine but I'm not sure if that is the same as code that directly uses SQLNCLI. The matter is even more confused by the fact there are 32 bit and 64 bit versions of the driver available on my server. Are there any stand alone or command line utilities that I can use to emulate an applications connection to SQL and analyse any debug messages I might get back.
I'm on a server 2008 x64 machine, connecting to the SQL Server 2008 x64 Mirror.

SQL Server 2005 setup issue

I have two issues both related to (I believe) my SQL Server setup. I have installed SQL Server (the full thing) from MSDN downloads of the x64 version on my Vista 64 Home Premium box. After running into multiple issues I finally got it working. This is a new box so I ported over a database that I need to work on from another server. That also worked fine. My first issue however came when I tried to open a database in SQL Server Management Studio:
"Unable to find the requested .Net Framework Data Provider. It may not be installed. (System.Data)"
The box itself isn't new and definitely has .NET installed (version 3 I believe). I found that someone posted this as a bug but as the team (SQL Server team) could not reproduce it, they removed it. I've tried installing the recommended SP3 patch to no avail. It's only when I try to open a table for viewing the data (right-click and "Open Table"). I can even execute queries and retrieve results (from inside management studio). I'll follow pretty much any suggestion to try and get this working.
My second issue is that I cannot connect to the server. I thought I could just work around it (with queries), but I did not find that it added any ODBC connections on the box, just the drivers. Management Studio can access the DB just fine, but the machine itself doesn't appear to recognize that anything is running on it, at least on the default port (1433) and no, I do not have a named instance. When trying to manually add the server to the DSN or any datasources it cannot find the SQL server (under Control Panel > Administrative Tools > Data Sources (ODBC). Under SQL Server Management Studio it appears as a registered database server (I think this is because it connects on port 1434 from what I hear? not sure). This is my primary problem, and even if I can't open the tables (the first issue) I absolutely NEED to be able to set it up so that I can connect to it. The language source I am connecting from is ColdFusion which is set up as a stand-alone server (IIS not installed, not using it right now).
As for connecting to it, make sure all the services are running. SQL Server Agent in particular.
Also, check in the SQL Server 2005 Surface Area configuration for Services and Connections. Check under "Remote Connections" to see if "local and remote" connections are on. It might be set to "local only".
CF versions 6+ do not use the OS's ODBC connections. They use JDBC over IP to connect. You need to make sure you have allowed TCP/IP connections to the DB using the SQL Server Configuration Studio. Then, use the Data Sources page in the CF Administrator page (usually localhost:port/cfide/administrator, replacing "port" with the port you're using for the CF built-in server).
Why though, would it default to this
and why would this be an issue with my
own machine (local testing)?
SQL Server 2005 is meant to be more secure by default, so not all the protocols are opened up by default.
Sql Server Agent doesn't have anything
to do with remote connections, but I
seemed to recall there being an issue
with doing discovery on the network if
the Agent wasn't started
Maybe you're thinking of the SQL Browser with named instances.
Did you try this process?
http://oakleafblog.blogspot.com/2007/03/orcas-march-ctp-on-vista-database.html

Resources