- Wipe the client and server telemetry files
- Start DA Client and Server
- Find 3-5 workflows through the app (try to make the workflow realistic, e.g. create an invoice, add various items to it and issue the invoice)
- Go through the exact workflow until all the pulses in it are learnt (see below)
- If after 8 times through the workflow the pulses still haven't learnt take a SQL Trace of the workflow and a NetMon capture from the database server
- If the pulse query count varies substancially for the same workflow let us know. For example a workflow may have 5 pulses, when you first run it the query count may be 5, 100, 2, 40, if the second time you run it the query count is 5, 250, 2, 40 we'd like to know!
- Run the analysis tool on the client and server telemetry files, get both reasons and performance stats.
Pulses are "learnt" when they contain no "Uncharted" reasons in the pulse_complete event. To check this while DA is running
tail -f server-telemetry.1 | grep --line-buffered pulse_complete
This is an example of a learnt pulse:
[["pulse_complete",{"hits":0,"queries":3,"reasons":{"branch_point":1,"not_predicted":1,"Unsafe statement types: COMMIT TRANSACTION":1}}],1464172978386436,1],
This is an example of a pulse that is still learning:
[["pulse_complete",{"hits":0,"queries":183,"reasons":{"not_predicted":1,"uncharted":182}}],1464171454770029,1],
- If you have many telemetry files (server-telemtry.1 and server-telemetry.2 they will need to be joined into a single server-telemetry file)
- In the master branch run ./create_release.sh
- Run ./apps/analysis/analysis for help on how to use the tool