The performance of a FileMaker shared database on a network is determined by many factors. Besides networking hardware and software, structure and design of the database system may effect performance. The best performance from FileMaker Pro and FileMaker Pro Server can be achieved by implementing as many of the following recommendations as possible.
Use a fast network connection
Local area networks should be at least 10Mb/sec or better. The faster the connection the better the network performance, especially for many users on a large network. If possible use switches instead of hubs, hubs broadcast data where as a switch will give a more direct route from the client to the server. Remote connections should be via a fast broadband connection, such as a T1 line, DSL or cable modem. Dial-up connections using modems are extremely slow.
LOCATE YOUR DATABASES ON THE HOST COMPUTER
The database files should reside on a hard drive attached to the host computer. (The host computer is, by definition, whichever computer opens a FileMaker database first). If you open a database as the host and the database is stored on a remote file server, then there is a network connection between the host and the database. This may be only marginally slower if you're the only person using the database, but if there are guests using the database, their access to the file will be much slower. This is because all communication between the database and the users is through the host. When a guest performs an action on a database, that communication flows through the host to the database file, then back through the host to the guest. When multiple guests use a database, the 'traffic' between the host and the database file on disk increases accordingly. The worst case scenario is when related files reside on a server and some the databases are opened first by one computer and others are opened first by other computer(s). This not only results in a network between the host and the database, but also a network between multiple hosts.
To avoid this problem, locate the database files on the host computer. Then make sure that the computer that is supposed to be the host computer opens the databases first. This is commonly done by setting up the host computer to open the databases automatically when the computer is booted.
HOST THE DATABASES ON A COMPUTER RUNNING ONLY FILEMAKER PRO
You can host databases on a server, on a workstation or on a separate computer dedicated to hosting FileMaker databases. A dedicated FileMaker Pro host is fastest. This is because a computer can only process one thing at a time. A computer may appear to process multiple tasks at the same time. In fact, the computer can only switch between processing different tasks very quickly. Any computer processing time used for something else is processing time taken away from running FileMaker Pro. On a server, processing time can be used for transferring files to and from the server, processing mail, print serving, web serving, running other applications, etc. When the server is busy handling these other processes, it cannot handle processing FileMaker Pro. This can cause delays for FileMaker Pro users as they wait for the server to process other requests on the server.
Similar delays can happen when you host the databases on your workstation. For example, if you work on a word processing document while FileMaker Pro is hosting files in the background, you may find that the computer processing time for the word processing document slows down FileMaker Pro, and vice versa. Likewise, dialog boxes and screen savers may prevent the workstation from doing any processing of background applications *at all*, bringing all FileMaker Pro users to a complete halt.
For these reasons, the fastest solution is to host FileMaker Pro databases on a dedicated host computer. If you cannot afford a separate computer to run FileMaker Pro, then hosting the databases on the server is still better than storing databases on the server and hosting from a workstation. This, at least, eliminates any network slow down between the host and the database files.
NOTE: The file you’re hosting must be on the hard disk of your computer. Remotely hosting a file stored on another computer or server is not supported, as it might compromise data integrity and will result in poor performance.
HOST YOUR DATABASES WITH FILEMAKER SERVER
Depending on how you use the databases, you may find a speed improvement with as few as five users. If you're regularly finding and sorting a lot of records, or you're displaying layouts with summary fields, for example, you'll find that FileMaker Server can speed up your usage of the databases. FileMaker Server is faster for several reasons. First, FileMaker Server handles more of the processing locally that otherwise would be sent to the guest. For example, FileMaker Server can reindex a field that has been edited by a guest, rather than sending the data to the guest for reindexing. In addition, FileMaker Server is multi-threaded, which means it can handle the processes of multiple guests simultaneously.
Conversely, a FileMaker Pro host can only handle the current process of a single user. While this is going on, other users will wait until FileMaker Pro is done handling the current process. As you can imagine, a lengthy process, such as a large and complicated sub-summary report, can cause significant waits for other users. Another common process that can be lengthy is when data is edited by guest. This is due to the nature of how FileMaker Pro handles updated data. When data is updated, that information is sent out to every guest with that file open. It does this so that any guest that happens to be viewing that record will see the updated data immediately. The host then waits for acknowledgement from the guest that the updated data has been received. Anything that delays receiving this acknowledgement from the guest will prevent a FileMaker Pro host from finishing this process and starting the next process by another guest. This can include a busy network, or a guest computer that is busy with another task, or a guest computer that has a dialog box or screen saver up that prevents it from responding back to the host.
Since FileMaker Server is multi-threaded, it can process other guests while it attempts to finish the current task. Please check the system requirements for the version of FileMaker Server you are running.
FileMaker Server has other benefits:
- It can host up to 125 databases and 250 users simultaneously (FileMaker Server 10 Advanced is limited to 999 simultaneous FileMaker Pro/Pro Advanced client connections). In contrast, FileMaker Pro can host up to 5 guests simultaneously (FileMaker Pro 9 and later can host up to 9 guests simultaneously).
- FileMaker Server can forcibly disconnect guests. This makes database maintenance much easier. This is especially convenient when you have guests from remote locations.
- FileMaker Server can be remotely administered. You can open and close databases, and disconnect guests from any computer on the network using FileMaker Pro.
- FileMaker Server has backup scheduling, which can save backup copies of all your hosted databases automatically. These backup copies, being closed, can be properly backed up by tape drives or any other backup device.
OPTIMIZE THE HOST COMPUTER
Most of the following tips are not specific to FileMaker Pro or FileMaker Pro Server, and can be applicable to any application. Nevertheless, these tips for speeding up your host computer can help to speed up your usage of FileMaker Pro.
- Use a fast computer with a fast hard drive. Just about any current computer is more than fast enough.
- Turn off File Sharing. If you use File Sharing to access databases for administration, turn off File Sharing when you're done. File Sharing does not specifically effect FileMaker Pro performance, but it does slow down the computer overall, which effects running FileMaker Pro.
- Use the latest operating system and make sure to have all the OS updates/patches.
- Disable all unnecessary applications/features: screen savers, peer to peer networks, web sharing, etc.
- Be sure to change the Energy Saver (Mac OS X) or Power Options (Windows) to never turn off/spin down the computer's hard drive(s).
- Make sure you have all the latest updates for FileMaker.
- For FileMaker Pro, increasing the cache size may help but there is a trade off as explained in step 8. This is set in Preferences.
- For FileMaker Server: Turn the statistic logging on and make sure on average that the % cache hit ratio is somewhere between 95% to 100 %. If it's always hitting 100 % regardless of how many users and files are open then too much memory is allocated and the RAM cache for FileMaker Server should be set lower than the current setting. If it's hitting less than 95 % then you will want to raise the database cache size. The trade off in increasing the cache size whether it is in FileMaker Server or FileMaker Pro, is that the larger the cache size the less is written to disk until the cache is flushed. This means if the application crashes then it can cause a loss of data as big as your cache setting. "Distribute cache flush" setting for server should also be adjusted accordingly. The longer the time period, the more time it'll take for the information to get saved to the file. It is recommended to set that at 1 minute in most cases. You can find this setting within the configuration/properties of the Server under the databases tab.
OPTIMIZE THE GUEST COMPUTERS
The previous tips for optimizing the host computer can also be applied to improving speed of the guest computers. However, this is less important than improving the speed of the host. Of course, this is all relative. If your guest computer is extremely slow by today's standards and the host is already reasonably fast, you may want to try a faster guest computer first.
OPTIMIZE CONNECTING AS A GUEST
There are several ways to open a database as a guest
Recommended: use Open Remote from the File menu, or use an "opener" database (explained later).
Not recommended: Do not double-click on the file icon on a network share you've connected to. Always connect via the File Menu and select Open Remote (or Open Recent if you've used this database recently) or an opener database.
Explanation: When you connect to a database via a file icon, your computer needs to locate the host computer over the network. This location will be by your computer's native networking protocol. This can take longer to open the file as it takes time to locate the host on the network.
OPTIMIZING THE DATABASES
Making your databases faster is not a topic specific to shared databases. However, improving database speed will be most noticed on the guest computers.
- File references are very important; we can see the file references, listed in File > Manage > External Data Sources... If the related file is on the same machine/folder as the host that is serving the file, it is fastest (and easiest) to have the file reference as : file:<NameOfFile>.fp7
NOTE: Using the ip address may be slightly faster than using the DNS name of the machine, as this avoids having to lookup the ip address on the DNS server. However the trade off is that the ip address is hardcoded and if the ip address changes the files will no longer have access.
NOTE: We do not recommend running FileMaker Server and FileMaker Pro on the same machine. But there is no harm in installing both as long as they are not running concurrently.